import {FeatureFlagsService, Features} from "./feature-flags.service"; import {getTestBed, TestBed} from "@angular/core/testing"; import {NgRedux} from "@angular-redux/store"; import each from 'jest-each'; let flagValue:boolean; class MockReduxStore { getState() { return { "global": { "flags": { "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": flagValue, }, }, } }; } describe('Feature flags Service', () => { let injector; let service: FeatureFlagsService; beforeAll(done => (async () => { TestBed.configureTestingModule({ providers: [ FeatureFlagsService, {provide: NgRedux, useClass: MockReduxStore}] }); await TestBed.compileComponents(); injector = getTestBed(); service = injector.get(FeatureFlagsService); })().then(done).catch(done.fail)); let flagValueDataProvider = [ ['flag is true', true], ['flag is false', false] ]; each(flagValueDataProvider).test("should return the correct flag %s", (desc: string, flag: boolean) => { flagValue = flag; expect(service.getFlagState(Features.FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST)).toEqual(flag); }); });