Newer
Older
import { createStateResource, StateResource } from '@alfa-client/tech-shared';
import { Mock, mock } from '@alfa-client/test-utils';
import { TestBed } from '@angular/core/testing';
import { expect } from '@jest/globals';
import { singleCold, singleColdCompleted } from 'libs/tech-shared/test/marbles';
import { Observable, of } from 'rxjs';
import {
createAggregationMapping,
createAggregationMappingListResource,
createAggregationMappingResource,
} from '../../test/aggregation-mapping';
import { AggregationMappingListResourceService } from './aggregation-mapping-list-resource.service';
import { AggregationMappingResourceService } from './aggregation-mapping-resource.service';
import { AggregationMapping, AggregationMappingListResource, AggregationMappingResource } from './aggregation-mapping.model';
import { AggregationMappingService } from './aggregation-mapping.service';
describe('AggregationMappingService', () => {
let service: AggregationMappingService;
let listResourceService: Mock<AggregationMappingListResourceService>;
let resourceService: Mock<AggregationMappingResourceService>;
beforeEach(() => {
listResourceService = mock(AggregationMappingListResourceService);
resourceService = mock(AggregationMappingResourceService);
providers: [
AggregationMappingService,
{ provide: AggregationMappingListResourceService, useValue: listResourceService },
{ provide: AggregationMappingResourceService, useValue: resourceService },
],
});
service = TestBed.inject(AggregationMappingService);
});
it('should create', () => {
expect(service).toBeTruthy();
});
describe('get list', () => {
const aggregationMappingListResource: AggregationMappingListResource = createAggregationMappingListResource();
const aggregationMappingListStateResource: StateResource<AggregationMappingListResource> =
createStateResource(aggregationMappingListResource);
beforeEach(() => {
listResourceService.getList = jest.fn().mockReturnValue(singleCold(aggregationMappingListStateResource));
});
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
it('should call listResourceService', () => {
service.getList();
expect(listResourceService.getList).toHaveBeenCalled();
});
it('should return value', () => {
const loadedAggregationMappingListResource: Observable<StateResource<AggregationMappingListResource>> = service.getList();
expect(loadedAggregationMappingListResource).toBeObservable(singleCold(aggregationMappingListStateResource));
});
});
describe('create', () => {
const aggregationMappingResource: AggregationMappingResource = createAggregationMappingResource();
const aggregationMappingStateResource: StateResource<AggregationMappingResource> =
createStateResource(aggregationMappingResource);
const aggregationMapping: AggregationMapping = createAggregationMapping();
beforeEach(() => {
listResourceService.create = jest.fn().mockReturnValue(singleCold(aggregationMappingStateResource));
});
it('should call resourceService', () => {
service.create(aggregationMapping);
expect(listResourceService.create).toHaveBeenCalledWith(aggregationMapping);
});
it('should return value', () => {
const loadedAggregationMappingResource: Observable<StateResource<AggregationMappingResource>> =
service.create(aggregationMapping);
expect(loadedAggregationMappingResource).toBeObservable(singleCold(aggregationMappingStateResource));
});
});
describe('refresh list', () => {
it('should call list resource service', () => {
listResourceService.refresh = jest.fn();
service.refreshList();
expect(listResourceService.refresh).toHaveBeenCalled();
});
});
const stateResource: StateResource<AggregationMappingResource> = createStateResource(createAggregationMappingResource());
beforeEach(() => {
resourceService.get = jest.fn().mockReturnValue(of(stateResource));
});
it('should call resource service', () => {
expect(resourceService.get).toHaveBeenCalled();
});
it('should emit resource', () => {
expect(service.get()).toBeObservable(singleColdCompleted(stateResource));
});
});
describe('save', () => {
const aggregationMapping: AggregationMapping = createAggregationMapping();
const stateResource: StateResource<AggregationMappingResource> = createStateResource(createAggregationMappingResource());
beforeEach(() => {
resourceService.save = jest.fn().mockReturnValue(of(stateResource));
});
it('should call resource service', () => {
service.save(aggregationMapping);
expect(resourceService.save).toHaveBeenCalledWith(aggregationMapping);
});
it('should emit saved state resource', () => {
expect(service.save(aggregationMapping)).toBeObservable(singleColdCompleted(stateResource));
});
});