import {RouterTestingModule} from "@angular/router/testing";
 import {of} from "rxjs";
 import {UrlTree} from "@angular/router";
+import each from "jest-each";
+import {ServiceAction} from "../shared/models/serviceInstanceActions";
 
 class MockAppStore<T> {
 
     expect(statusResult.iconClassName).toEqual(UNKNOWN);
   });
 
+
+  each([
+      [true, ServiceAction.INSTANTIATE],
+      [false, ServiceAction.UPDATE],
+      [false, ServiceAction.DELETE],
+  ]).
+  test('isRecreateEnabled: should be %s if action is %s', (expected:boolean, action:ServiceAction) => {
+    let serviceInfoModel = new ServiceInfoModel();
+    serviceInfoModel.action = action;
+    expect(service.isRecreateEnabled(serviceInfoModel)).toBe(expected);
+  });
+
   test('getStatusTooltip should return correct icon per job status', () => {
     let result : ServiceStatus  = service.getStatus('pending');
     expect(result.iconClassName).toEqual(PENDING);
 
 import {Router, UrlTree} from "@angular/router";
 import {of} from "rxjs";
 import {MsoService} from "../shared/services/msoService/mso.service";
+import {ServiceAction} from "../shared/models/serviceInstanceActions";
 
 export let PENDING : string = "pending";
 export let INPROGRESS : string = "in_progress";
       this.navigateToNewViewEdit(item, DrawingBoardModes.RETRY_EDIT);
   }
 
+  recreate(item: ServiceInfoModel): void {
+    this.navigateToNewViewEdit(item, DrawingBoardModes.RECREATE);
+  }
+
+  isRecreateEnabled(item: ServiceInfoModel): boolean {
+    return item.action === ServiceAction.INSTANTIATE;
+  }
+
 }