Skip to content
Snippets Groups Projects
Verified Commit b4665ba0 authored by Sebastian Bergandy's avatar Sebastian Bergandy :keyboard:
Browse files

OZG-7473 get embedded resource in template

Based on CR comment.
parent ced17b53
No related branches found
No related tags found
1 merge request!104Administration: Neu hinzugefügte Felder für Statistik speichern
......@@ -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;
......
<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>
......
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(),
......
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);
}
public listStateResource: StateResource<AggregationMappingListResource> = createEmptyStateResource();
public aggregationMappings: AggregationMappingResource[] = [];
@Input({ required: true }) aggregationMappingListStateResource: StateResource<AggregationMappingListResource>;
_update(stateResource: StateResource<AggregationMappingListResource>): void {
this.listStateResource = stateResource;
if (isNotNil(stateResource) && isLoaded(stateResource)) {
this.aggregationMappings = getEmbeddedResources(stateResource, AggregationMappingListLinkRel.LIST);
}
}
public readonly AggregationMappingListLinkRel = AggregationMappingListLinkRel;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment