/* * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den * Ministerpräsidenten des Landes Schleswig-Holstein * Staatskanzlei * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung * * Lizenziert unter der EUPL, Version 1.2 oder - sobald * diese von der Europäischen Kommission genehmigt wurden - * Folgeversionen der EUPL ("Lizenz"); * Sie dürfen dieses Werk ausschließlich gemäß * dieser Lizenz nutzen. * Eine Kopie der Lizenz finden Sie hier: * * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 * * Sofern nicht durch anwendbare Rechtsvorschriften * gefordert oder in schriftlicher Form vereinbart, wird * die unter der Lizenz verbreitete Software "so wie sie * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - * ausdrücklich oder stillschweigend - verbreitet. * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ import { existsAsHtmlElement, notExistsAsHtmlElement, triggerEvent } from '@alfa-client/test-utils'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { getDataTestIdOf } from '../../../../../tech-shared/test/data-test'; import { StatistikContainerComponent } from './statistik-container.component'; describe('StatistikContainerComponent', () => { let component: StatistikContainerComponent; let fixture: ComponentFixture<StatistikContainerComponent>; const evaluateAdditionalFieldsTestId: string = getDataTestIdOf('weitere-felder-auswerten-button'); const statistikFieldsFormTestId: string = getDataTestIdOf('statistik-fields-form'); beforeEach(async () => { await TestBed.configureTestingModule({ imports: [StatistikContainerComponent], }); }); beforeEach(() => { fixture = TestBed.createComponent(StatistikContainerComponent); component = fixture.componentInstance; fixture.detectChanges(); }); describe('component', () => { it('should create', () => { expect(component).toBeTruthy(); }); it('should set default values', () => { expect(component.evaluateAdditionalFields).toBeDefined(); expect(component.evaluateAdditionalFields).toBeFalsy(); }); describe('onEvaluateAdditionalFieldsClick', () => { it('should update component state', () => { component.evaluateAdditionalFields = false; component.onEvaluateAdditionalFields(); expect(component.evaluateAdditionalFields).toBeTruthy(); }); }); }); describe('template', () => { describe('weiter felder auswerten button', () => { it('should exists', () => { fixture.detectChanges(); existsAsHtmlElement(fixture, evaluateAdditionalFieldsTestId); }); it('should NOT exists', () => { component.evaluateAdditionalFields = true; fixture.detectChanges(); notExistsAsHtmlElement(fixture, evaluateAdditionalFieldsTestId); }); describe('output', () => { describe('clickEmitter', () => { it('should call handler', () => { component.onEvaluateAdditionalFields = jest.fn(); component.evaluateAdditionalFields = false; fixture.detectChanges(); triggerEvent({ fixture, elementSelector: evaluateAdditionalFieldsTestId, name: 'clickEmitter', }); expect(component.onEvaluateAdditionalFields).toHaveBeenCalled(); }); }); }); }); describe('stastik fields form', () => { it('should exists', () => { component.evaluateAdditionalFields = true; fixture.detectChanges(); existsAsHtmlElement(fixture, statistikFieldsFormTestId); }); it('should NOT exists', () => { component.evaluateAdditionalFields = false; fixture.detectChanges(); notExistsAsHtmlElement(fixture, statistikFieldsFormTestId); }); }); }); });