merge from ecomp a88f0072 - Modern UI

Issue-ID: VID-378
Change-Id: Ibcb23dd27f550cf32ce2fe0239f0f496ae014ff6
Signed-off-by: Ittay Stern <ittay.stern@att.com>
diff --git a/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.spec.ts b/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.spec.ts
new file mode 100644
index 0000000..847af66
--- /dev/null
+++ b/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.spec.ts
@@ -0,0 +1,47 @@
+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<T> {
+
+  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);
+    });
+});