Skip to content
Snippets Groups Projects
Commit e534c3ea authored by Martin's avatar Martin
Browse files

OZG-7774 adjust route logic due to segment changes

parent c493379f
Branches
Tags
No related merge requests found
...@@ -18,6 +18,7 @@ import { Observable, of } from 'rxjs'; ...@@ -18,6 +18,7 @@ import { Observable, of } from 'rxjs';
import { createRouteData, createUrlSegment } from '../../../../navigation-shared/test/navigation-test-factory'; import { createRouteData, createUrlSegment } from '../../../../navigation-shared/test/navigation-test-factory';
import { singleColdCompleted } from '../../../../tech-shared/test/marbles'; import { singleColdCompleted } from '../../../../tech-shared/test/marbles';
import { createAggregationMappingResource } from '../../test/aggregation-mapping'; import { createAggregationMappingResource } from '../../test/aggregation-mapping';
import * as self from './aggregation-mapping-resource.service'; import * as self from './aggregation-mapping-resource.service';
jest.mock('@alfa-client/tech-shared', () => ({ jest.mock('@alfa-client/tech-shared', () => ({
...@@ -131,7 +132,9 @@ describe('AggregationMappingResourceService', () => { ...@@ -131,7 +132,9 @@ describe('AggregationMappingResourceService', () => {
urlSegments: Array(numberOfSegments).fill(createUrlSegment()), 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', () => { it('should return false if first path is wrong', () => {
...@@ -140,7 +143,9 @@ describe('AggregationMappingResourceService', () => { ...@@ -140,7 +143,9 @@ describe('AggregationMappingResourceService', () => {
urlSegments: Array(2).fill(createUrlSegment()), 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', () => { it('should return false if second path is wrong', () => {
...@@ -153,32 +158,23 @@ describe('AggregationMappingResourceService', () => { ...@@ -153,32 +158,23 @@ describe('AggregationMappingResourceService', () => {
urlSegments: [firstUrlSegment, secondUrlSegment], urlSegments: [firstUrlSegment, secondUrlSegment],
}; };
expect(self._isAggregationMappingEditUrl(routeData)).toBe(false); const isEditUrl: boolean = self._isAggregationMappingEditUrl(routeData);
expect(isEditUrl).toBe(false);
}); });
it('should return true', () => { it('should return true', () => {
const firstUrlSegment: UrlSegment = createUrlSegment(); const routeData: RouteData = createAuswertungEditRouteData();
firstUrlSegment.path = ROUTES.AGGREGATION_MAPPING;
const secondUrlSegment: UrlSegment = createUrlSegment(); const isEditUrl: boolean = self._isAggregationMappingEditUrl(routeData);
secondUrlSegment.path = faker.internet.url();
const routeData: RouteData = {
...createRouteData(),
urlSegments: [firstUrlSegment, secondUrlSegment],
};
expect(self._isAggregationMappingEditUrl(routeData)).toBe(true); expect(isEditUrl).toBe(true);
}); });
}); });
describe('get aggregation mapping resource by route', () => { describe('get aggregation mapping resource by route', () => {
const firstUrlSegment: UrlSegment = createUrlSegment(); const routeData: RouteData = createAuswertungEditRouteData();
firstUrlSegment.path = ROUTES.AGGREGATION_MAPPING;
const secondUrlSegment: UrlSegment = createUrlSegment();
secondUrlSegment.path = faker.internet.url();
const routeData: RouteData = {
...createRouteData(),
urlSegments: [firstUrlSegment, secondUrlSegment],
};
const uri: ResourceUri = faker.internet.url(); const uri: ResourceUri = faker.internet.url();
const resource: AggregationMappingResource = createAggregationMappingResource(); const resource: AggregationMappingResource = createAggregationMappingResource();
...@@ -190,7 +186,7 @@ describe('AggregationMappingResourceService', () => { ...@@ -190,7 +186,7 @@ describe('AggregationMappingResourceService', () => {
it('should decode url', () => { it('should decode url', () => {
self._getAggregationMappingResourceByRoute(useFromMock(repository), routeData); self._getAggregationMappingResourceByRoute(useFromMock(repository), routeData);
expect(decodeUrlFromEmbeddingMock).toHaveBeenCalledWith(secondUrlSegment.path); expect(decodeUrlFromEmbeddingMock).toHaveBeenCalledWith(routeData.urlSegments[2].path);
}); });
it('should get resource', () => { it('should get resource', () => {
...@@ -208,4 +204,18 @@ describe('AggregationMappingResourceService', () => { ...@@ -208,4 +204,18 @@ describe('AggregationMappingResourceService', () => {
expect(stateResource$).toBeObservable(singleColdCompleted(createStateResource(resource))); 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],
};
}
}); });
import { ROUTES } from '@admin-client/shared';
import { NavigationService, RouteData } from '@alfa-client/navigation-shared'; import { NavigationService, RouteData } from '@alfa-client/navigation-shared';
import { import {
ApiResourceService, ApiResourceService,
...@@ -58,13 +57,18 @@ export function _getResourceByNavigationRoute( ...@@ -58,13 +57,18 @@ export function _getResourceByNavigationRoute(
export function _isAggregationMappingEditUrl(route: RouteData): boolean { export function _isAggregationMappingEditUrl(route: RouteData): boolean {
const urlSegments: UrlSegment[] = route.urlSegments; 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( export function _getAggregationMappingResourceByRoute(
repository: ResourceRepository, repository: ResourceRepository,
route: RouteData, route: RouteData,
): Observable<StateResource<AggregationMappingResource>> { ): 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))); return repository.getResource(uri).pipe(map((resource: AggregationMappingResource) => createStateResource(resource)));
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment