From b51ac2ce386fa1d5f9806dae6e177b18e293c61f Mon Sep 17 00:00:00 2001 From: Yoav Schneiderman Date: Thu, 2 Jan 2020 14:37:13 +0200 Subject: Template modal - Start from Scratch button + UT Issue-ID: VID-739 Signed-off-by: Yoav Schneiderman Change-Id: Ie390a53714212d4d943789d14bb2fb51f7311277 Signed-off-by: Yoav Schneiderman --- .../instantiation.templates.modal.component.html | 2 +- .../instantiation.templates.modal.component.ts | 13 ++++++++--- .../instantiation.templates.modal.service.spec.ts | 25 +++++++++++++++++++--- .../instantiation.templates.modal.service.ts | 8 +++++++ .../src/app/shared/utils/iframe.service.ts | 19 ++++++++-------- 5 files changed, 51 insertions(+), 16 deletions(-) diff --git a/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.html b/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.html index e2922b2a2..84783c273 100644 --- a/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.html +++ b/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.html @@ -168,7 +168,7 @@ diff --git a/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.ts b/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.ts index 20655d54a..1c86b3ddb 100644 --- a/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.ts +++ b/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.ts @@ -1,7 +1,7 @@ import {Component, OnDestroy, OnInit} from "@angular/core"; import {DialogComponent, DialogService} from "ng2-bootstrap-modal"; import {IframeService} from "../../../utils/iframe.service"; -import {ActivatedRoute} from "@angular/router"; +import {ActivatedRoute, Router} from "@angular/router"; import {ServiceInfoService} from "../../../server/serviceInfo/serviceInfo.service"; import {InstantiationTemplatesModalService} from "./instantiation.templates.modal.service"; import {InstantiationTemplatesRowModel} from "./instantiation.templates.row.model"; @@ -20,6 +20,7 @@ import {forkJoin} from "rxjs"; export class InstantiationTemplatesModalComponent extends DialogComponent implements OnInit, OnDestroy { + serviceModelId: string = null; selectedInstantiation: InstantiationTemplatesRowModel = null; templateModalComponentService: InstantiationTemplatesModalService; originalTableData: InstantiationTemplatesRowModel[] = []; @@ -34,6 +35,7 @@ export class InstantiationTemplatesModalComponent extends DialogComponent, + private _router : Router, private _route: ActivatedRoute) { super(dialogService); this.templateModalComponentService = _templateModalComponentService; @@ -44,8 +46,8 @@ export class InstantiationTemplatesModalComponent extends DialogComponent { - - const getServiceJobInfoRoute = this._serviceInfoService.getTemplatesInfo(true, params['serviceModelId']); + this.serviceModelId = params['serviceModelId']; + const getServiceJobInfoRoute = this._serviceInfoService.getTemplatesInfo(true, this.serviceModelId); const getUserIdRoute = this._aaiService.getUserId(); forkJoin([getServiceJobInfoRoute, getUserIdRoute]).subscribe(([jobs]) => { @@ -70,4 +72,9 @@ export class InstantiationTemplatesModalComponent extends DialogComponent { } } -class MockAppStore { +// -} + +class MockAppStore {} describe('instantiation templates modal service', () => { + const serviceModelId :string = 'serviceModelId'; let injector; let service: InstantiationTemplatesModalService; let httpMock: HttpTestingController; let _aaiService: AaiService; let _activatedRoute: ActivatedRoute; + let _router : Router; + + + + let router = { + navigate: jasmine.createSpy('navigate') + }; beforeAll(done => (async () => { TestBed.configureTestingModule({ @@ -35,6 +44,7 @@ describe('instantiation templates modal service', () => { IframeService, AaiService, FeatureFlagsService, + { provide: Router, useValue: router }, {provide: ActivatedRoute, useClass: ActivatedRouteMock}, {provide: NgRedux, useClass: MockAppStore} ] @@ -46,6 +56,7 @@ describe('instantiation templates modal service', () => { httpMock = injector.get(HttpTestingController); _aaiService = injector.get(AaiService); _activatedRoute = injector.get(ActivatedRoute); + _router = injector.get(Router); })().then(done).catch(done.fail)); @@ -157,4 +168,12 @@ describe('instantiation templates modal service', () => { expect(result).toHaveLength(0); }); + + test('navigateToNewServiceModal should navigate to new service modal', ()=>{ + + service.navigateToNewServiceModal(serviceModelId); + + expect(_router.navigate).toBeCalledWith(["/servicePopup"], {"queryParams": {"isCreate": true, "serviceModelId": serviceModelId}, "queryParamsHandling": "merge"}); + }) + }); diff --git a/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.service.ts b/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.service.ts index 36691fda5..c17591845 100644 --- a/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.service.ts +++ b/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.service.ts @@ -1,10 +1,13 @@ import {Injectable} from "@angular/core"; import {InstantiationTemplatesRowModel} from "./instantiation.templates.row.model"; +import {Router} from "@angular/router"; import * as _ from 'lodash'; @Injectable() export class InstantiationTemplatesModalService { + constructor(private _router : Router){ + } convertResponseToUI = (jobsResponse: any[]): InstantiationTemplatesRowModel[] => { let tableRows: InstantiationTemplatesRowModel[] = []; @@ -25,4 +28,9 @@ export class InstantiationTemplatesModalService { return []; }; + + navigateToNewServiceModal(serviceModelId: string) { + this._router.navigate(['/servicePopup'], { queryParams: { serviceModelId: serviceModelId, isCreate:true}, queryParamsHandling: 'merge' }); + } + } diff --git a/vid-webpack-master/src/app/shared/utils/iframe.service.ts b/vid-webpack-master/src/app/shared/utils/iframe.service.ts index ab93d1ac8..e1ef59f83 100644 --- a/vid-webpack-master/src/app/shared/utils/iframe.service.ts +++ b/vid-webpack-master/src/app/shared/utils/iframe.service.ts @@ -6,19 +6,19 @@ export class IframeService { addClassOpenModal(elementClassName: string) { const parentBodyElement = parent.document.getElementsByClassName(elementClassName)[0]; - if (parentBodyElement) { + if (parentBodyElement) { parentBodyElement.classList.add("modal-open"); } } removeClassCloseModal(elementClassName: string) { const parentBodyElement = parent.document.getElementsByClassName(elementClassName)[0]; - if (parentBodyElement) { + if (parentBodyElement) { parentBodyElement.classList.remove("modal-open"); } } - closeIframe(dialogService : DialogService, that){ + closeIframe(dialogService: DialogService, that) { this.removeClassCloseModal('content'); dialogService.removeDialog(that); setTimeout(() => { @@ -27,16 +27,17 @@ export class IframeService { } - addFullScreen(){ - let parentBodyElement = parent.document.getElementsByClassName('service-model-content')[0]; - if (parentBodyElement) { + + addFullScreen() { + let parentBodyElement = parent.document.getElementsByClassName('service-model-content')[0]; + if (parentBodyElement) { parentBodyElement.classList.add("full-screen"); } } - removeFullScreen(){ - let parentBodyElement = parent.document.getElementsByClassName('service-model-content')[0]; - if (parentBodyElement) { + removeFullScreen() { + let parentBodyElement = parent.document.getElementsByClassName('service-model-content')[0]; + if (parentBodyElement) { parentBodyElement.classList.remove("full-screen"); } } -- cgit 1.2.3-korg