Skip to content
Snippets Groups Projects
erledigen-button-container.component.spec.ts 3.28 KiB
Newer Older
  • Learn to ignore specific revisions
  •  * Copyright (C) 2023 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 { HasLinkPipe } from '@alfa-client/tech-shared';
    import { mock } from '@alfa-client/test-utils';
    import { WiedervorlageLinkRel, WiedervorlageService } from '@alfa-client/wiedervorlage-shared';
    
    import { ComponentFixture, TestBed } from '@angular/core/testing';
    import { ButtonWithSpinnerComponent } from '@ods/component';
    import { CheckCircleIconComponent } from '@ods/system';
    
    import { getDataTestIdAttributeOf } from 'libs/tech-shared/test/data-test';
    
    import { createWiedervorlageResource } from 'libs/wiedervorlage-shared/test/wiedervorlage';
    import { MockComponent } from 'ng-mocks';
    import { ErledigenButtonContainerComponent } from './erledigen-button-container.component';
    
    describe('ErledigenButtonContainerComponent', () => {
    
      let component: ErledigenButtonContainerComponent;
      let fixture: ComponentFixture<ErledigenButtonContainerComponent>;
    
      const erledigenIconButton = getDataTestIdAttributeOf('erledigen-icon-button');
    
      const wiedervorlageService = mock(WiedervorlageService);
    
      beforeEach(async () => {
        await TestBed.configureTestingModule({
          declarations: [
            ErledigenButtonContainerComponent,
            HasLinkPipe,
    
            MockComponent(ButtonWithSpinnerComponent),
            MockComponent(CheckCircleIconComponent),
    
          ],
          providers: [
            {
              provide: WiedervorlageService,
              useValue: wiedervorlageService,
            },
          ],
        }).compileComponents();
      });
    
      beforeEach(() => {
        fixture = TestBed.createComponent(ErledigenButtonContainerComponent);
        component = fixture.componentInstance;
        fixture.detectChanges();
      });
    
      it('should create', () => {
        expect(component).toBeTruthy();
      });
    
      describe('Erledigen Button', () => {
        it('should be hidden', () => {
          const button = fixture.nativeElement.querySelector(erledigenIconButton);
    
          expect(button).not.toBeInstanceOf(HTMLElement);
        });
    
        it('should be visible', () => {
          component.wiedervorlage = createWiedervorlageResource([WiedervorlageLinkRel.ERLEDIGEN]);
          fixture.detectChanges();
    
          const button = fixture.nativeElement.querySelector(erledigenIconButton);
    
          expect(button).toBeInstanceOf(HTMLElement);
        });
      });
    
      describe('erledigen', () => {
        it('should call service', () => {
          component.erledigen();
    
          expect(wiedervorlageService.erledigen).toHaveBeenCalled();
        });
      });
    });