From baae083cc1891d75fcd357855e0f8c2bf4c952a0 Mon Sep 17 00:00:00 2001 From: kurilova Date: Fri, 11 Apr 2025 09:44:00 +0000 Subject: [PATCH] Sort profiles list by date --- modules/ui/src/app/mocks/profile.mock.ts | 2 +- modules/ui/src/app/services/test-run.service.spec.ts | 7 ++++--- modules/ui/src/app/services/test-run.service.ts | 11 ++++++++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/modules/ui/src/app/mocks/profile.mock.ts b/modules/ui/src/app/mocks/profile.mock.ts index 7e6322bbe..749db8fb7 100644 --- a/modules/ui/src/app/mocks/profile.mock.ts +++ b/modules/ui/src/app/mocks/profile.mock.ts @@ -158,7 +158,7 @@ export const RENAME_PROFILE_MOCK = { export const COPY_PROFILE_MOCK: Profile = { name: 'Copy of Primary profile', status: ProfileStatus.VALID, - created: '2024-05-23 12:38:26', + created: '2025-05-23 12:38:26', questions: [ { question: 'What is the email of the device owner(s)?', diff --git a/modules/ui/src/app/services/test-run.service.spec.ts b/modules/ui/src/app/services/test-run.service.spec.ts index b0c0ff7e0..a117e11e2 100644 --- a/modules/ui/src/app/services/test-run.service.spec.ts +++ b/modules/ui/src/app/services/test-run.service.spec.ts @@ -35,6 +35,7 @@ import { AppState } from '../store/state'; import { Certificate } from '../model/certificate'; import { certificate } from '../mocks/certificate.mock'; import { + COPY_PROFILE_MOCK, NEW_PROFILE_MOCK, PROFILE_FORM, PROFILE_MOCK, @@ -521,9 +522,9 @@ describe('TestRunService', () => { req.flush(true); }); - it('fetchProfiles should return profiles', () => { + it('fetchProfiles should return sorted list of profiles', () => { service.fetchProfiles().subscribe(res => { - expect(res).toEqual([PROFILE_MOCK]); + expect(res).toEqual([COPY_PROFILE_MOCK, PROFILE_MOCK]); }); const req = httpTestingController.expectOne( @@ -532,7 +533,7 @@ describe('TestRunService', () => { expect(req.request.method).toBe('GET'); - req.flush([PROFILE_MOCK]); + req.flush([PROFILE_MOCK, COPY_PROFILE_MOCK]); }); it('deleteProfile should delete profile', () => { diff --git a/modules/ui/src/app/services/test-run.service.ts b/modules/ui/src/app/services/test-run.service.ts index 08b5b08a0..a80bc37ab 100644 --- a/modules/ui/src/app/services/test-run.service.ts +++ b/modules/ui/src/app/services/test-run.service.ts @@ -243,7 +243,16 @@ export class TestRunService { } fetchProfiles(): Observable { - return this.http.get(`${API_URL}/profiles`); + return this.http + .get[]>(`${API_URL}/profiles`) + .pipe( + map(items => + items.sort( + (a, b) => + new Date(b.created).getTime() - new Date(a.created).getTime() + ) + ) + ); } deleteProfile(name: string): Observable {