Skip to content
Snippets Groups Projects
configuration.service.spec.ts 2.79 KiB
Newer Older
  • Learn to ignore specific revisions
  • /*
     * Copyright (C) 2024 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 { StateResource, createStateResource } from '@alfa-client/tech-shared';
    
    OZGCloud's avatar
    OZGCloud committed
    import { Mock, mock } from '@alfa-client/test-utils';
    import { TestBed } from '@angular/core/testing';
    
    OZGCloud's avatar
    OZGCloud committed
    import { singleCold, singleHot } from 'libs/tech-shared/test/marbles';
    
    import { Observable } from 'rxjs';
    
    OZGCloud's avatar
    OZGCloud committed
    import { createConfigurationResource } from '../../test/configuration';
    
    import { ConfigurationResourceService } from './configuration-resource.service';
    import { ConfigurationResource } from './configuration.model';
    import { ConfigurationService } from './configuration.service';
    
    
    describe('ConfigurationService', () => {
      let service: ConfigurationService;
    
      let configurationResourceService: Mock<ConfigurationResourceService>;
    
    
      beforeEach(() => {
    
        configurationResourceService = mock(ConfigurationResourceService);
    
    OZGCloud's avatar
    OZGCloud committed
        TestBed.configureTestingModule({
          providers: [ConfigurationService, { provide: ConfigurationResourceService, useValue: configurationResourceService }],
        });
    
        service = TestBed.inject(ConfigurationService);
    
      });
    
      it('should create', () => {
        expect(service).toBeTruthy();
      });
    
    
        const configurationResource: ConfigurationResource = createConfigurationResource();
    
        const configurationStateResource: StateResource<ConfigurationResource> = createStateResource(configurationResource);
    
    
        beforeEach(() => {
    
          configurationResourceService.get = jest.fn().mockReturnValue(singleHot(configurationStateResource));
    
        });
        it('should call resourceService', () => {
    
          expect(configurationResourceService.get).toHaveBeenCalled();
    
        });
    
        it('should return value', () => {
    
          const loadedConfigurationResource: Observable<StateResource<ConfigurationResource>> = service.get();
    
    
          expect(loadedConfigurationResource).toBeObservable(singleCold(configurationStateResource));
        });
      });
    });