Skip to content
Snippets Groups Projects
icon.component.spec.ts 2.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • /*
     * 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 } from '@alfa-client/test-utils';
    
    import { provideHttpClient } from '@angular/common/http';
    import { provideZoneChangeDetection } from '@angular/core';
    
    import { ComponentFixture, TestBed } from '@angular/core/testing';
    
    import { provideAngularSvgIcon } from 'angular-svg-icon';
    
    import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
    
    import { IconComponent } from './icon.component';
    
    describe('IconComponent', () => {
      let component: IconComponent;
      let fixture: ComponentFixture<IconComponent>;
    
    
      const labelSelector: string = getDataTestIdOf('sr-label');
    
    
      beforeEach(async () => {
        await TestBed.configureTestingModule({
          imports: [IconComponent],
    
          providers: [provideZoneChangeDetection({ eventCoalescing: true }), provideHttpClient(), provideAngularSvgIcon()],
    
        }).compileComponents();
    
        fixture = TestBed.createComponent(IconComponent);
        component = fixture.componentInstance;
        fixture.detectChanges();
      });
    
      it('should create', () => {
        expect(component).toBeTruthy();
      });
    
    
      describe('component', () => {
        describe('label', () => {
          it('should show', () => {
            component.label = 'test';
    
            fixture.detectChanges();
    
            existsAsHtmlElement(fixture, labelSelector);
          });
    
          it('should hide', () => {
            component.label = '';
    
            fixture.detectChanges();
    
            notExistsAsHtmlElement(fixture, labelSelector);
          });
        });
      });