From b4665ba0810973d33827a413bf428a6fe24cbb6e Mon Sep 17 00:00:00 2001 From: sebo <sebastian.bergandy@external.mgm-cp.com> Date: Sun, 23 Mar 2025 19:19:51 +0100 Subject: [PATCH] OZG-7473 get embedded resource in template Based on CR comment. --- .../admin-e2e/src/page-objects/main.po.ts | 2 +- .../aggregation-mapping-list.component.html | 4 +- ...aggregation-mapping-list.component.spec.ts | 58 +------------------ .../aggregation-mapping-list.component.ts | 22 ++----- 4 files changed, 10 insertions(+), 76 deletions(-) diff --git a/alfa-client/apps/admin-e2e/src/page-objects/main.po.ts b/alfa-client/apps/admin-e2e/src/page-objects/main.po.ts index c982465ac9..e2b33614a9 100644 --- a/alfa-client/apps/admin-e2e/src/page-objects/main.po.ts +++ b/alfa-client/apps/admin-e2e/src/page-objects/main.po.ts @@ -31,7 +31,7 @@ export class MainPage { private readonly benutzerNavigationItem: string = 'link-path-benutzer'; private readonly organisationEinheitNavigationItem: string = 'link-path-organisationseinheiten'; private readonly postfachNavigationItem: string = 'link-path-postfach'; - private readonly statistikNavigationItem: string = 'link-path-aggregation-mapping'; + private readonly statistikNavigationItem: string = 'link-path-auswertung'; public getBuildInfo(): BuildInfoE2EComponent { return this.buildInfo; diff --git a/alfa-client/libs/admin/aggregation-mapping/src/lib/aggregation-mapping-list-container/aggregation-mapping-list/aggregation-mapping-list.component.html b/alfa-client/libs/admin/aggregation-mapping/src/lib/aggregation-mapping-list-container/aggregation-mapping-list/aggregation-mapping-list.component.html index 521fc9e92d..fb306dc34f 100644 --- a/alfa-client/libs/admin/aggregation-mapping/src/lib/aggregation-mapping-list-container/aggregation-mapping-list/aggregation-mapping-list.component.html +++ b/alfa-client/libs/admin/aggregation-mapping/src/lib/aggregation-mapping-list-container/aggregation-mapping-list/aggregation-mapping-list.component.html @@ -1,6 +1,6 @@ -<ods-spinner [stateResource]="listStateResource"> +<ods-spinner [stateResource]="aggregationMappingListStateResource"> <ods-list data-test-id="aggregation-mapping-list"> - @for (aggregationMapping of aggregationMappings; track $index) { + @for (aggregationMapping of (aggregationMappingListStateResource.resource | toEmbeddedResources: AggregationMappingListLinkRel.LIST); track $index) { <admin-aggregation-mapping-list-item [aggregationMapping]="aggregationMapping" /> } </ods-list> diff --git a/alfa-client/libs/admin/aggregation-mapping/src/lib/aggregation-mapping-list-container/aggregation-mapping-list/aggregation-mapping-list.component.spec.ts b/alfa-client/libs/admin/aggregation-mapping/src/lib/aggregation-mapping-list-container/aggregation-mapping-list/aggregation-mapping-list.component.spec.ts index 9500dffc91..1a6e2d40a4 100644 --- a/alfa-client/libs/admin/aggregation-mapping/src/lib/aggregation-mapping-list-container/aggregation-mapping-list/aggregation-mapping-list.component.spec.ts +++ b/alfa-client/libs/admin/aggregation-mapping/src/lib/aggregation-mapping-list-container/aggregation-mapping-list/aggregation-mapping-list.component.spec.ts @@ -1,11 +1,5 @@ import { AggregationMappingListResource } from '@admin-client/reporting-shared'; -import { - createEmptyStateResource, - createLoadingStateResource, - createStateResource, - getEmbeddedResources, - StateResource, -} from '@alfa-client/tech-shared'; +import { createStateResource, getEmbeddedResources, StateResource } from '@alfa-client/tech-shared'; import { expectComponentExistsInTemplate, getElementFromFixtureByType } from '@alfa-client/test-utils'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { expect } from '@jest/globals'; @@ -33,6 +27,7 @@ describe('AggregationMappingListComponent', () => { fixture = TestBed.createComponent(AggregationMappingListComponent); component = fixture.componentInstance; + component.aggregationMappingListStateResource = createStateResource(createAggregationMappingListResource()); fixture.detectChanges(); }); @@ -40,55 +35,6 @@ describe('AggregationMappingListComponent', () => { expect(component).toBeTruthy(); }); - describe('component', () => { - const aggregationMappingListStateResource: StateResource<AggregationMappingListResource> = createStateResource( - createAggregationMappingListResource(), - ); - - it('should have initial state', () => { - expect(component.listStateResource).toEqual(createEmptyStateResource()); - expect(component.aggregationMappings).toEqual([]); - }); - - describe('update', () => { - it('should set list state resource', () => { - component.aggregationMappingListStateResource = aggregationMappingListStateResource; - - expect(component.listStateResource).toEqual(aggregationMappingListStateResource); - }); - - it('should set aggregation mappings if loaded and not nil', () => { - component.aggregationMappingListStateResource = aggregationMappingListStateResource; - - expect(component.aggregationMappings).toEqual( - getEmbeddedResources(aggregationMappingListStateResource, AggregationMappingListLinkRel.LIST), - ); - }); - - it('should NOT set aggregation mappings if nil', () => { - component.aggregationMappingListStateResource = null; - - expect(component.aggregationMappings).toEqual([]); - }); - - it('should NOT set aggregation mappings if loading', () => { - component.aggregationMappingListStateResource = createLoadingStateResource(); - - expect(component.aggregationMappings).toEqual([]); - }); - }); - - describe('set aggregation mapping list state resource', () => { - it('should update component state', () => { - component._update = jest.fn(); - - component.aggregationMappingListStateResource = aggregationMappingListStateResource; - - expect(component._update).toHaveBeenCalledWith(aggregationMappingListStateResource); - }); - }); - }); - describe('template', () => { const aggregationMappingListStateResource: StateResource<AggregationMappingListResource> = createStateResource( createAggregationMappingListResource(), diff --git a/alfa-client/libs/admin/aggregation-mapping/src/lib/aggregation-mapping-list-container/aggregation-mapping-list/aggregation-mapping-list.component.ts b/alfa-client/libs/admin/aggregation-mapping/src/lib/aggregation-mapping-list-container/aggregation-mapping-list/aggregation-mapping-list.component.ts index 4adecffe51..ac2c343c47 100644 --- a/alfa-client/libs/admin/aggregation-mapping/src/lib/aggregation-mapping-list-container/aggregation-mapping-list/aggregation-mapping-list.component.ts +++ b/alfa-client/libs/admin/aggregation-mapping/src/lib/aggregation-mapping-list-container/aggregation-mapping-list/aggregation-mapping-list.component.ts @@ -1,5 +1,5 @@ -import { AggregationMappingListResource, AggregationMappingResource } from '@admin-client/reporting-shared'; -import { createEmptyStateResource, getEmbeddedResources, isLoaded, isNotNil, StateResource } from '@alfa-client/tech-shared'; +import { AggregationMappingListResource } from '@admin-client/reporting-shared'; +import { StateResource, ToEmbeddedResourcesPipe } from '@alfa-client/tech-shared'; import { Component, Input } from '@angular/core'; import { SpinnerComponent } from '@ods/component'; import { ListComponent } from '@ods/system'; @@ -10,22 +10,10 @@ import { AggregationMappingListItemComponent } from './aggregation-mapping-list- selector: 'admin-aggregation-mapping-list', standalone: true, templateUrl: './aggregation-mapping-list.component.html', - imports: [SpinnerComponent, ListComponent, AggregationMappingListItemComponent], + imports: [SpinnerComponent, ListComponent, AggregationMappingListItemComponent, ToEmbeddedResourcesPipe], }) export class AggregationMappingListComponent { - @Input({ required: true }) set aggregationMappingListStateResource( - stateResource: StateResource<AggregationMappingListResource>, - ) { - this._update(stateResource); - } + @Input({ required: true }) aggregationMappingListStateResource: StateResource<AggregationMappingListResource>; - public listStateResource: StateResource<AggregationMappingListResource> = createEmptyStateResource(); - public aggregationMappings: AggregationMappingResource[] = []; - - _update(stateResource: StateResource<AggregationMappingListResource>): void { - this.listStateResource = stateResource; - if (isNotNil(stateResource) && isLoaded(stateResource)) { - this.aggregationMappings = getEmbeddedResources(stateResource, AggregationMappingListLinkRel.LIST); - } - } + public readonly AggregationMappingListLinkRel = AggregationMappingListLinkRel; } -- GitLab