diff --git a/alfa-client/libs/admin/configuration-shared/src/lib/configuration.service.spec.ts b/alfa-client/libs/admin/configuration-shared/src/lib/configuration.service.spec.ts index 0892339b5464476bdf01cf8383891b55e8554a1d..74a49865e342702b9374f39bfc3a7c3d3fdc4ee3 100644 --- a/alfa-client/libs/admin/configuration-shared/src/lib/configuration.service.spec.ts +++ b/alfa-client/libs/admin/configuration-shared/src/lib/configuration.service.spec.ts @@ -21,11 +21,13 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -import { StateResource, createStateResource } from '@alfa-client/tech-shared'; +import { ConfigurationLinkRel } from '@admin-client/configuration-shared'; +import { StateResource, createStateResource, notHasLink } from '@alfa-client/tech-shared'; import { Mock, mock } from '@alfa-client/test-utils'; import { TestBed } from '@angular/core/testing'; +import { expect } from '@jest/globals'; import { singleCold, singleHot } from 'libs/tech-shared/test/marbles'; -import { Observable } from 'rxjs'; +import { Observable, of } from 'rxjs'; import { createConfigurationResource } from '../../test/configuration'; import { ConfigurationResourceService } from './configuration-resource.service'; import { ConfigurationResource } from './configuration.model'; @@ -57,8 +59,6 @@ describe('ConfigurationService', () => { configurationResourceService.get = jest.fn().mockReturnValue(singleHot(configurationStateResource)); }); it('should call resourceService', () => { - configurationResourceService.get = jest.fn(); - service.get(); expect(configurationResourceService.get).toHaveBeenCalled(); @@ -69,5 +69,19 @@ describe('ConfigurationService', () => { expect(loadedConfigurationResource).toBeObservable(singleCold(configurationStateResource)); }); + + it('should remove aggregation mappings link', (done) => { + const configurationStateResource: StateResource<ConfigurationResource> = createStateResource( + createConfigurationResource([ConfigurationLinkRel.AGGREGATION_MAPPINGS]), + ); + configurationResourceService.get = jest.fn().mockReturnValue(of(configurationStateResource)); + + const result$: Observable<StateResource<ConfigurationResource>> = service.get(); + + result$.subscribe((stateResource: StateResource<ConfigurationResource>) => { + expect(notHasLink(stateResource.resource, ConfigurationLinkRel.AGGREGATION_MAPPINGS)).toBe(true); + done(); + }); + }); }); }); diff --git a/alfa-client/libs/admin/configuration-shared/src/lib/configuration.service.ts b/alfa-client/libs/admin/configuration-shared/src/lib/configuration.service.ts index 1a1b763736644b12f4003820569d4e4bae65a679..5a180123d6ce16c0912ea00bf43af0af5027f41d 100644 --- a/alfa-client/libs/admin/configuration-shared/src/lib/configuration.service.ts +++ b/alfa-client/libs/admin/configuration-shared/src/lib/configuration.service.ts @@ -23,8 +23,10 @@ */ import { StateResource } from '@alfa-client/tech-shared'; import { inject, Injectable } from '@angular/core'; -import { Observable } from 'rxjs'; +import { omit } from 'lodash-es'; +import { map, Observable } from 'rxjs'; import { ConfigurationResourceService } from './configuration-resource.service'; +import { ConfigurationLinkRel } from './configuration.linkrel'; import { ConfigurationResource } from './configuration.model'; @Injectable() @@ -32,6 +34,12 @@ export class ConfigurationService { private configurationResourceService = inject(ConfigurationResourceService); public get(): Observable<StateResource<ConfigurationResource>> { - return this.configurationResourceService.get(); + return this.configurationResourceService + .get() + .pipe( + map((stateResource: StateResource<ConfigurationResource>) => + omit(stateResource, `resource._links.${ConfigurationLinkRel.AGGREGATION_MAPPINGS}`), + ), + ); } }