Instantiation-Status: default on unexpected/undefined statuses (fix) 34/97734/1
authorIttay Stern <ittay.stern@att.com>
Wed, 30 Oct 2019 12:46:22 +0000 (14:46 +0200)
committerIttay Stern <ittay.stern@att.com>
Wed, 30 Oct 2019 12:46:22 +0000 (14:46 +0200)
Issue-ID: VID-692

Change-Id: I15c81daba1a45ff0e009d5e381f93adb03914c0f
Signed-off-by: Ittay Stern <ittay.stern@att.com>
vid-webpack-master/cypress/integration/iFrames/instantiationStatus.e2e.ts
vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.service.spec.ts
vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.service.ts

index 6abd6a3..3b65734 100644 (file)
@@ -28,7 +28,7 @@ describe('Instantiation status', function () {
   });
 
   it('should display the correct icons per status', function () {
-      const serviceAction:any = {INSTANTIATE : 'Instantiate', DELETE: 'Delete', UPDATE: 'Update'};
+      const serviceAction:any = {INSTANTIATE : 'Instantiate', DELETE: 'Delete', UPDATE: 'Update', UPGRADE: 'Upgrade'};
       cy.openIframe('app/ui/#/instantiationStatus');
       for(let i = 0 ; i < asyncRes.length; i++){
         if(asyncRes[i].project){
index d115984..27d3f41 100644 (file)
@@ -139,7 +139,7 @@ describe('Instantiation Status Service', () => {
     'STOPPED': 'Stopped: Due to previous failure, will not be instantiated.',
     'StOpPeD': 'Stopped: Due to previous failure, will not be instantiated.',
     'COMPLETED_WITH_ERRORS': 'Completed with errors: some of the planned actions where successfully committed while other have not.\n Open the service to check it out.',
-    'UNEXPECTED_STATUS': 'Unexpected status: "UNEXPECTED_RANDOM_STATUS"',
+    'UNEXPECTED_RANDOM_STATUS': 'Unexpected status: "UNEXPECTED_RANDOM_STATUS"',
   })) {
 
     test(`getStatusTooltip should return status popover: status=${status}`, () => {
@@ -148,6 +148,12 @@ describe('Instantiation Status Service', () => {
 
   }
 
+  test(`service.getStatus should handle undefined status`, () => {
+    const statusResult = service.getStatus(undefined);
+    expect(statusResult.tooltip).toEqual('Unexpected status: "undefined"');
+    expect(statusResult.iconClassName).toEqual(UNKNOWN);
+  });
+
   test('getStatusTooltip should return correct icon per job status', () => {
     let result : ServiceStatus  = service.getStatus('pending');
     expect(result.iconClassName).toEqual(PENDING);
@@ -172,6 +178,9 @@ describe('Instantiation Status Service', () => {
 
     result = service.getStatus('UNEXPECTED_RANDOM_STATUS');
     expect(result.iconClassName).toEqual(UNKNOWN);
+
+    result = service.getStatus(undefined);
+    expect(result.iconClassName).toEqual(UNKNOWN);
   });
 
   function generateServiceInfoData(){
index 6a85d9d..ffc2e68 100644 (file)
@@ -138,7 +138,7 @@ export class InstantiationStatusComponentService {
   }
 
   getStatus(status : string) : ServiceStatus {
-    switch(status.toUpperCase()) {
+    switch(`${status}`.toUpperCase()) {
       case  'PENDING' :
         return new ServiceStatus(PENDING, 'primary', 'Pending: The action required will be sent as soon as possible.');
       case  'IN_PROGRESS' :