diff --git a/alfa-client/libs/admin/reporting-shared/src/lib/aggregation-mapping-resource.service.spec.ts b/alfa-client/libs/admin/reporting-shared/src/lib/aggregation-mapping-resource.service.spec.ts index d9131bbba356d5498790a473a7429705a8f3b92e..9ef44bff065c1084de14c1db482e26a907a07664 100644 --- a/alfa-client/libs/admin/reporting-shared/src/lib/aggregation-mapping-resource.service.spec.ts +++ b/alfa-client/libs/admin/reporting-shared/src/lib/aggregation-mapping-resource.service.spec.ts @@ -18,6 +18,7 @@ import { Observable, of } from 'rxjs'; import { createRouteData, createUrlSegment } from '../../../../navigation-shared/test/navigation-test-factory'; import { singleColdCompleted } from '../../../../tech-shared/test/marbles'; import { createAggregationMappingResource } from '../../test/aggregation-mapping'; + import * as self from './aggregation-mapping-resource.service'; jest.mock('@alfa-client/tech-shared', () => ({ @@ -131,7 +132,9 @@ describe('AggregationMappingResourceService', () => { urlSegments: Array(numberOfSegments).fill(createUrlSegment()), }; - expect(self._isAggregationMappingEditUrl(routeData)).toBe(false); + const isEditUrl: boolean = self._isAggregationMappingEditUrl(routeData); + + expect(isEditUrl).toBe(false); }); it('should return false if first path is wrong', () => { @@ -140,7 +143,9 @@ describe('AggregationMappingResourceService', () => { urlSegments: Array(2).fill(createUrlSegment()), }; - expect(self._isAggregationMappingEditUrl(routeData)).toBe(false); + const isEditUrl: boolean = self._isAggregationMappingEditUrl(routeData); + + expect(isEditUrl).toBe(false); }); it('should return false if second path is wrong', () => { @@ -153,32 +158,23 @@ describe('AggregationMappingResourceService', () => { urlSegments: [firstUrlSegment, secondUrlSegment], }; - expect(self._isAggregationMappingEditUrl(routeData)).toBe(false); + const isEditUrl: boolean = self._isAggregationMappingEditUrl(routeData); + + expect(isEditUrl).toBe(false); }); it('should return true', () => { - const firstUrlSegment: UrlSegment = createUrlSegment(); - firstUrlSegment.path = ROUTES.AGGREGATION_MAPPING; - const secondUrlSegment: UrlSegment = createUrlSegment(); - secondUrlSegment.path = faker.internet.url(); - const routeData: RouteData = { - ...createRouteData(), - urlSegments: [firstUrlSegment, secondUrlSegment], - }; + const routeData: RouteData = createAuswertungEditRouteData(); + + const isEditUrl: boolean = self._isAggregationMappingEditUrl(routeData); - expect(self._isAggregationMappingEditUrl(routeData)).toBe(true); + expect(isEditUrl).toBe(true); }); }); describe('get aggregation mapping resource by route', () => { - const firstUrlSegment: UrlSegment = createUrlSegment(); - firstUrlSegment.path = ROUTES.AGGREGATION_MAPPING; - const secondUrlSegment: UrlSegment = createUrlSegment(); - secondUrlSegment.path = faker.internet.url(); - const routeData: RouteData = { - ...createRouteData(), - urlSegments: [firstUrlSegment, secondUrlSegment], - }; + const routeData: RouteData = createAuswertungEditRouteData(); + const uri: ResourceUri = faker.internet.url(); const resource: AggregationMappingResource = createAggregationMappingResource(); @@ -190,7 +186,7 @@ describe('AggregationMappingResourceService', () => { it('should decode url', () => { self._getAggregationMappingResourceByRoute(useFromMock(repository), routeData); - expect(decodeUrlFromEmbeddingMock).toHaveBeenCalledWith(secondUrlSegment.path); + expect(decodeUrlFromEmbeddingMock).toHaveBeenCalledWith(routeData.urlSegments[2].path); }); it('should get resource', () => { @@ -208,4 +204,18 @@ describe('AggregationMappingResourceService', () => { expect(stateResource$).toBeObservable(singleColdCompleted(createStateResource(resource))); }); }); + + function createAuswertungEditRouteData() { + const firstUrlSegment: UrlSegment = createUrlSegment(); + firstUrlSegment.path = 'statistik'; + const secondUrlSegment: UrlSegment = createUrlSegment(); + secondUrlSegment.path = 'auswertungen'; + const thirdUrlSegment: UrlSegment = createUrlSegment(); + thirdUrlSegment.path = faker.internet.url(); + + return { + ...createRouteData(), + urlSegments: [firstUrlSegment, secondUrlSegment, thirdUrlSegment], + }; + } }); diff --git a/alfa-client/libs/admin/reporting-shared/src/lib/aggregation-mapping-resource.service.ts b/alfa-client/libs/admin/reporting-shared/src/lib/aggregation-mapping-resource.service.ts index 0bfa0689a8c24df11542605a2f33dfbe4a4401eb..33ba5615b534dbac1e875b189142ab4685baf3e8 100644 --- a/alfa-client/libs/admin/reporting-shared/src/lib/aggregation-mapping-resource.service.ts +++ b/alfa-client/libs/admin/reporting-shared/src/lib/aggregation-mapping-resource.service.ts @@ -1,4 +1,3 @@ -import { ROUTES } from '@admin-client/shared'; import { NavigationService, RouteData } from '@alfa-client/navigation-shared'; import { ApiResourceService, @@ -58,13 +57,18 @@ export function _getResourceByNavigationRoute( export function _isAggregationMappingEditUrl(route: RouteData): boolean { const urlSegments: UrlSegment[] = route.urlSegments; - return urlSegments.length === 2 && urlSegments[0].path === ROUTES.AGGREGATION_MAPPING && urlSegments[1].path !== 'neu'; + return ( + urlSegments.length === 3 && + urlSegments[0].path === 'statistik' && + urlSegments[1].path === 'auswertungen' && + urlSegments[2].path !== 'neu' + ); } export function _getAggregationMappingResourceByRoute( repository: ResourceRepository, route: RouteData, ): Observable<StateResource<AggregationMappingResource>> { - const uri: string = decodeUrlFromEmbedding(route.urlSegments[1].path); + const uri: string = decodeUrlFromEmbedding(route.urlSegments[2].path); return repository.getResource(uri).pipe(map((resource: AggregationMappingResource) => createStateResource(resource))); }