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/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.spec.ts
new file mode 100644
index 0000000..bcf6753
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.spec.ts
@@ -0,0 +1,184 @@
+import {getTestBed, TestBed} from '@angular/core/testing';
+import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
+import {DefaultDataGeneratorService} from "../../../shared/services/defaultDataServiceGenerator/default.data.generator.service";
+import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
+import {DrawingBoardHeaderService} from "./drawing-board-header.service";
+import {ActivatedRoute} from '@angular/router';
+import {ServiceInstanceActions} from "../../../shared/models/serviceInstanceActions";
+import {AppState} from "../../../shared/store/reducers";
+import {NgRedux} from "@angular-redux/store";
+import {addServiceAction} from "../../../shared/storeUtil/utils/service/service.actions";
+import {ErrorMsgService} from "../../../shared/components/error-msg/error-msg.service";
+import {DrawingBoardModes} from "../drawing-board.modes";
+import each from "jest-each";
+
+class MockAppStore<T>{
+ getState() {
+ return {
+ service : {
+ serviceInstance : {
+ "serviceInstanceId" : {
+ action: 'None'
+ }
+ }
+ }
+ }
+ }
+}
+
+describe('Generate path to old View/Edit ', () => {
+ let injector;
+ let service: DrawingBoardHeaderService;
+ let httpMock: HttpTestingController;
+ let store : NgRedux<AppState>;
+
+ beforeAll(done => (async () => {
+ TestBed.configureTestingModule({
+ imports: [HttpClientTestingModule, NgReduxTestingModule],
+ providers: [
+ DrawingBoardHeaderService,
+ DefaultDataGeneratorService,
+ MockNgRedux,
+ ErrorMsgService,
+ {
+ provide: ActivatedRoute,
+ useValue: {
+ snapshot : {
+ queryParams:{
+ 'subscriberId' : 'subscriberId',
+ 'subscriberName' : 'subscriberName',
+ 'serviceType' : 'serviceType',
+ 'serviceInstanceId' : 'serviceInstanceId'
+ }
+ }
+ },
+ }]
+ });
+ await TestBed.compileComponents();
+
+ injector = getTestBed();
+ service = injector.get(DrawingBoardHeaderService);
+ httpMock = injector.get(HttpTestingController);
+ store = injector.get(NgRedux);
+
+ })().then(done).catch(done.fail));
+
+
+ test('should generate url to old view/edit ', () => {
+ const query: string = 'subscriberId=subscriberId&subscriberName=subscriberName&serviceType=serviceType&serviceInstanceId=serviceInstanceId';
+ const path = '../../serviceModels.htm#/instantiate?' + query;
+ let result = service.generateOldViewEditPath();
+ expect(result).toEqual(path);
+ });
+
+ test('should call update action for Delete',()=>{
+
+ jest.spyOn(store, 'dispatch');
+ service.deleteService("serviceInstanceId", true);
+ expect(store.dispatch).toHaveBeenCalledWith(addServiceAction("serviceInstanceId", ServiceInstanceActions.Delete));
+ });
+
+ test('should call update action for undo delete',()=>{
+ jest.spyOn(store, 'dispatch');
+ service.deleteService("serviceInstanceId", false);
+ expect(store.dispatch).toHaveBeenCalledWith(addServiceAction("serviceInstanceId", ServiceInstanceActions.None));
+ });
+
+ test('deployShouldBeDisabled with validationCounter greater then 0',()=>{
+ jest.spyOn(store, 'getState').mockReturnValue({
+ service: {
+ serviceInstance : {
+ 'serviceInstanceId' : {
+ validationCounter : 1
+ }
+ }
+ }
+ });
+ let result = service.deployShouldBeDisabled("serviceInstanceId");
+ expect(result).toBeTruthy();
+ });
+
+ test('deployShouldBeDisabled with validationCounter is 0 and not dirty',()=>{
+ jest.spyOn(store, 'getState').mockReturnValue({
+ service: {
+ serviceInstance : {
+ 'serviceInstanceId' : {
+ validationCounter : 0,
+ isDirty : false
+ }
+ }
+ }
+ });
+ let result = service.deployShouldBeDisabled("serviceInstanceId");
+ expect(result).toBeFalsy();
+ });
+
+ test('deployShouldBeDisabled with validationCounter is 0 and dirty',()=>{
+ jest.spyOn(store, 'getState').mockReturnValue({
+ service: {
+ serviceInstance : {
+ 'serviceInstanceId' : {
+ validationCounter : 0,
+ action : 'None',
+ isDirty : true
+ }
+ }
+ }
+ });
+ let result = service.deployShouldBeDisabled("serviceInstanceId");
+ expect(result).not.toBeTruthy();
+ });
+
+ test('deployShouldBeDisabled with validationCounter is 0 and not and action is None and dirty',()=>{
+ jest.spyOn(store, 'getState').mockReturnValue({
+ service: {
+ serviceInstance : {
+ 'serviceInstanceId' : {
+ validationCounter : 0,
+ action : ServiceInstanceActions.None,
+ isDirty : true
+ }
+ }
+ }
+ });
+ let result = service.deployShouldBeDisabled("serviceInstanceId");
+ expect(result).not.toBeTruthy();
+ });
+
+
+ test('getModeButton',()=>{
+ let result : string = service.getModeButton("EDIT");
+ expect(result).toEqual('UPDATE');
+
+ result = service.getModeButton("");
+ expect(result).toEqual('DEPLOY');
+
+ result = service.getModeButton("RETRY_EDIT");
+ expect(result).toEqual('REDEPLOY');
+ });
+ test('getButtonText',()=>{
+ expect(service.getButtonText("VIEW")).toEqual('EDIT');
+ expect(service.getButtonText("RETRY")).toEqual('REDEPLOY');
+
+ });
+ const showEditServiceDataProvider = [
+ ['Create action CREATE mode', DrawingBoardModes.CREATE ,ServiceInstanceActions.Create, true],
+ ['Create action RETRY_EDIT mode',DrawingBoardModes.RETRY_EDIT, ServiceInstanceActions.Create, true],
+ ['Create action EDIT mode',DrawingBoardModes.EDIT, ServiceInstanceActions.Create, true],
+ ['Create action RETRY mode',DrawingBoardModes.RETRY, ServiceInstanceActions.Create, false],
+ ['None action EDIT mode',DrawingBoardModes.EDIT, ServiceInstanceActions.None, false],
+ ['None action RETRY_EDIT mode', DrawingBoardModes.RETRY_EDIT, ServiceInstanceActions.None, false]];
+ each(showEditServiceDataProvider).test('showEditService service with %s', (description, mode, action, enabled) => {
+ jest.spyOn(store, 'getState').mockReturnValue({
+ service: {
+ serviceInstance : {
+ 'serviceInstanceId' : {
+ action : action
+ }
+ }
+ }
+ });
+ expect(service.showEditService(mode, 'serviceInstanceId')).toBe(enabled);
+
+ });
+});