From 8705e4b6d96f800e8f3cd072e72240d766b67a46 Mon Sep 17 00:00:00 2001 From: sebo <sebastian.bergandy@external.mgm-cp.com> Date: Mon, 20 Jan 2025 13:04:22 +0100 Subject: [PATCH] OZG-6988 implement button Sub task: OZG-7446 --- .../statistik-container.component.html | 7 +++ .../statistik-container.component.spec.ts | 61 ++++++++++++++++++- .../statistik-container.component.ts | 11 +++- 3 files changed, 75 insertions(+), 4 deletions(-) diff --git a/alfa-client/libs/admin/statistik/src/lib/statistik-container/statistik-container.component.html b/alfa-client/libs/admin/statistik/src/lib/statistik-container/statistik-container.component.html index eb8c0eaa7f..09cc3244d7 100644 --- a/alfa-client/libs/admin/statistik/src/lib/statistik-container/statistik-container.component.html +++ b/alfa-client/libs/admin/statistik/src/lib/statistik-container/statistik-container.component.html @@ -24,3 +24,10 @@ --> <h1 class="heading-1" data-test-id="statistik-header-text">Statistik</h1> +@if (!evaluateAdditionalFields) { + <ods-button + text="Weitere Felder auswerten" + (clickEmitter)="onEvaluateAdditionalFields()" + data-test-id="weitere-felder-auswerten-button" + ></ods-button> +} diff --git a/alfa-client/libs/admin/statistik/src/lib/statistik-container/statistik-container.component.spec.ts b/alfa-client/libs/admin/statistik/src/lib/statistik-container/statistik-container.component.spec.ts index 84b58ee0de..beb4e71bca 100644 --- a/alfa-client/libs/admin/statistik/src/lib/statistik-container/statistik-container.component.spec.ts +++ b/alfa-client/libs/admin/statistik/src/lib/statistik-container/statistik-container.component.spec.ts @@ -21,13 +21,17 @@ * 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'); + beforeEach(async () => { await TestBed.configureTestingModule({ imports: [StatistikContainerComponent], @@ -41,7 +45,60 @@ describe('StatistikContainerComponent', () => { fixture.detectChanges(); }); - it('should create', () => { - expect(component).toBeTruthy(); + 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(); + }); + }); + }); + }); }); }); diff --git a/alfa-client/libs/admin/statistik/src/lib/statistik-container/statistik-container.component.ts b/alfa-client/libs/admin/statistik/src/lib/statistik-container/statistik-container.component.ts index 05e7e9db91..bf802db58e 100644 --- a/alfa-client/libs/admin/statistik/src/lib/statistik-container/statistik-container.component.ts +++ b/alfa-client/libs/admin/statistik/src/lib/statistik-container/statistik-container.component.ts @@ -23,11 +23,18 @@ */ import { CommonModule } from '@angular/common'; import { Component } from '@angular/core'; +import { ButtonComponent } from '@ods/system'; @Component({ selector: 'admin-statistik-container', templateUrl: './statistik-container.component.html', standalone: true, - imports: [CommonModule], + imports: [CommonModule, ButtonComponent], }) -export class StatistikContainerComponent {} +export class StatistikContainerComponent { + public evaluateAdditionalFields: boolean = false; + + public onEvaluateAdditionalFields(): void { + this.evaluateAdditionalFields = true; + } +} -- GitLab