Skip to content
Snippets Groups Projects
Select Git revision
  • ea74437ea65a9c71bf0f52a9412d80d3cd1c9f08
  • main default protected
  • release
  • OZG-7856_schadcode_scanner
  • ci-pipeline
  • OZG-7526-signatur-nicht-uebernommen
  • OZG-6223-zip-download-bug
  • OZG-7367-tooltip-extension
  • OZG-7023-OZG-6956-E2E-externe-Stellen
  • OZG-6238-npm-durch-pnpm-ersetzen
  • release-admin
  • release-info
  • OZG-6700-admin-feature-toggle
  • E2E-Updates
  • OZG-7047-tooltips
  • OZG-6957-e2e-fachstellen-oe-daten
  • OZG-7006-ZuarbeitAnfragen
  • temp_OZG-7027
  • unit-tests-hotfix
  • OZG-6731-POC-keycloakResourceService-with-multiple-stateResources
  • e2e-add-zufi-version
  • 2.26.0
  • 2.25.0
  • 2.24.2
  • 2.24.1
  • 2.24.0
  • 2.23.0
  • 2.22.0
  • 2.21.0
  • 2.20.0
  • 2.21.0-SNAPSHOT
  • 2.19.0
  • 2.18.0
  • 2.17.1
  • 1.3.0
  • release-admin-1.3.0
  • release-info-1.3.0
  • 2.17.0
  • 2.16.0
  • 2.15.0
  • release-admin-1.1.0
41 results

build-info.component.spec.ts

Blame
  • build-info.component.spec.ts 3.64 KiB
    /*
     * Copyright (C) 2022 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 { FormatDateWithTimePipe } from '@alfa-client/tech-shared';
    import { registerLocaleData } from '@angular/common';
    import localeDe from '@angular/common/locales/de';
    import { ComponentFixture, TestBed } from '@angular/core/testing';
    import { createApiRootResource } from 'libs/api-root-shared/test/api-root';
    import { BuildInfoComponent } from './build-info.component';
    
    import * as DateUtil from '@alfa-client/tech-shared';
    
    registerLocaleData(localeDe);
    
    jest.mock('@alfa-client/tech-shared', () => mockAsEsModule('@alfa-client/tech-shared'));
    
    function mockAsEsModule(module: string) {
      return {
        __esModule: true,
        ...jest.requireActual(module),
      };
    }
    
    describe('BuildInfoComponent', () => {
      let component: BuildInfoComponent;
      let fixture: ComponentFixture<BuildInfoComponent>;
    
      beforeEach(async () => {
        await TestBed.configureTestingModule({
          imports: [BuildInfoComponent],
          declarations: [FormatDateWithTimePipe],
        }).compileComponents();
      });
    
      beforeEach(() => {
        fixture = TestBed.createComponent(BuildInfoComponent);
        component = fixture.componentInstance;
        component.apiRoot = createApiRootResource();
        fixture.detectChanges();
      });
    
      it('should create', () => {
        fixture.detectChanges();
        expect(component).toBeTruthy();
      });
    
      describe('isNotProduction', () => {
        it('should return true at non-production environment', () => {
          component.apiRoot.production = false;
    
          expect(component.isNotProduction).toBeTruthy();
        });
    
        it('should return false at production environment', () => {
          component.apiRoot.production = true;
    
          expect(component.isNotProduction).toBeFalsy();
        });
      });
    
      describe('isProduction', () => {
        it('should return false at non-production environment', () => {
          component.apiRoot.production = false;
    
          expect(component.isProduction).toBeFalsy();
        });
    
        it('should return true at production environment', () => {
          component.apiRoot.production = true;
    
          expect(component.isProduction).toBeTruthy();
        });
      });
    
      describe('version', () => {
        it('should return version fragment', () => {
          component.apiRoot.version = '1.12.0-SNAPSHOT';
    
          expect(component.version).toBe('1.12.0-SNAPSHOT');
        });
      });
    
      describe('buildDate', () => {
        it('should call formatFullDate', () => {
          const formatFullDate = jest.spyOn(DateUtil, 'formatFullDate');
    
          component.buildDate;
    
          expect(formatFullDate).toHaveBeenCalled();
        });
      });
    
      describe('buildTime', () => {
        it('should call formatHourMinute', () => {
          const formatHourMinute = jest.spyOn(DateUtil, 'formatHourMinute');
    
          component.buildTime;
    
          expect(formatHourMinute).toHaveBeenCalled();
        });
      });
    });