aboutsummaryrefslogtreecommitdiffstats
path: root/vid-webpack-master
diff options
context:
space:
mode:
authorKruthi Bhat <krutbhat@att.com>2020-10-09 00:37:39 +0530
committerIkram Ikramullah <ikram@research.att.com>2020-10-23 11:40:26 +0000
commit12226e5a7874dcc1d5b4cdb305188391b4b97cc5 (patch)
tree20291b6b264ee9bcc9392196cb31c62c97363dc8 /vid-webpack-master
parentb47aac88acc6c8e69b044d62930eefc4c41fb249 (diff)
Sorting functionality on audit info screen
Change-Id: If2fed947ccc0cbcb68ad656fb6010aa9cb829acd Issue-ID: VID-904 Signed-off-by: rachitha.ramappa@att.com
Diffstat (limited to 'vid-webpack-master')
-rw-r--r--vid-webpack-master/cypress/integration/iFrames/auditInfo.modal.e2e.ts77
-rw-r--r--vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json3
-rw-r--r--vid-webpack-master/cypress/support/jsonBuilders/mocks/vid.mock.ts15
-rw-r--r--vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.ts12
4 files changed, 102 insertions, 5 deletions
diff --git a/vid-webpack-master/cypress/integration/iFrames/auditInfo.modal.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/auditInfo.modal.e2e.ts
index c28d77b79..d43b07ecb 100644
--- a/vid-webpack-master/cypress/integration/iFrames/auditInfo.modal.e2e.ts
+++ b/vid-webpack-master/cypress/integration/iFrames/auditInfo.modal.e2e.ts
@@ -22,7 +22,7 @@ describe('Audit information modal', function () {
afterEach(() => {
cy.screenshot();
- });
+ });
it(`should display 2 tables with information's`, function () {
cy.initAuditInfoMSOALaCarte();
@@ -81,18 +81,87 @@ describe('Audit information modal', function () {
});
it('Refresh link should be visible and clicking refresh should fetch latest data', function () {
- cy.initAuditInfoMSOALaCarte();
+ cy.initAuditInfoMSOALaCarte();
cy.openIframe('app/ui/#/instantiationStatus');
cy.get('.instantiation-status-data tbody tr').each(function (row, index) {
cy.get('.icon-menu').eq(index).click({force: true}).then(()=>{
cy.getElementByDataTestsId('context-menu-audit-info').click({force:true}).then(()=>{
cy.setViewportToSmallPopup();
- cy.get('#refreshButton').should('be.visible');
+ cy.get('#refreshButton').should('be.visible')
+ cy.get('#refreshButton').click({force: true}).then(() => {
+ cy.initAuditInfoMSOALaCarteNew();
+ })
})
-
+
})
});
});
+ it('Check if the table data is sorted in descending order by start time', function () {
+ const expectedResult = getExpectedResult();
+ cy.readFile('../vid-automation/src/test/resources/a-la-carte/auditInfoMSOALaCarteNew.json').then((res) => {
+ cy.initAuditInfoMSOALaCarteNew(res);
+ cy.openIframe('app/ui/#/instantiationStatus');
+ cy.get('.icon-menu').eq(7).click({force:true}).then(() => {
+ cy.getElementByDataTestsId('context-menu-audit-info').click({force:true}).then(() => {
+ cy.setViewportToSmallPopup();
+ cy.get('#service-instantiation-audit-info-mso thead tr th#instanceName').should("be.visible")
+ .get('#service-instantiation-audit-info-mso tbody tr').each(function (row, index) {
+ assert.equal(row.find('#msoRequestId').text().trim(), expectedResult[index]['requestId']);
+ assert.equal(row.find('.msoInstanceName').text().trim(), expectedResult[index]['instanceName']);
+ assert.equal(row.find('#msostartTime').text().trim(), expectedResult[index]['startTime']);
+ });
+ });
+ })
+ });
+ });
+
});
});
+
+
+
+function getExpectedResult() {
+ return [
+ {
+ "requestId": "1fc2ef3b-26f0-4e62-a00a-6a31502d39e2",
+ "instanceName": "zrdm54cfmgw01_sup_1",
+ "modelType": "vfModule",
+ "instanceType": "createInstance",
+ "startTime": "Mon, 24 Aug 2020 22:54:29 GMT",
+ "finishTime": "Mon, 24 Aug 2020 22:56:35 GMT",
+ "jobStatus": "ROLLED_BACK_TO_ASSIGNED",
+ "additionalInfo": "<b>Source:</b> VID</br><b>StatusMessage:</b>STATUS: Error Source: OPENSTACK, Error Message: Received vfModuleException from VnfAdapter: category='INTERNAL' message='Exception during create VF 400 Bad Request: The server could not comply with the request since it is either malformed or otherwise incorrect., error.type=UserParameterMissing, error.message=The Parameter (VSFO_CP0_compute_node) was not provided.' rolledBack='true'</br><b>FlowStatus:</b> All Rollback flows have completed successfully</br><b>TestAPI:</b> GR_API</br><b>TenantId:</b> ad299b37da30413391e9c28138f0b0cd</br><b>TenantName:</b> FNCORE-30052-D-MC-RDM54c</br><b>CloudOwner:</b> att-nc</br>"
+ },
+ {
+ "requestId": "a4e43d9e-4813-42e4-94bf-c5c6f22ed0bc",
+ "instanceName": "zrdm54cfmgw01_base",
+ "modelType": "vfModule",
+ "instanceType": "createInstance",
+ "startTime": "Mon, 24 Aug 2020 22:44:42 GMT",
+ "finishTime": "Mon, 24 Aug 2020 22:54:17 GMT",
+ "jobStatus": "COMPLETE",
+ "additionalInfo": "<b>Source:</b> VID</br><b>StatusMessage:</b>STATUS: ALaCarte-VfModule-createInstance request was executed correctly.</br><b>FlowStatus:</b> Successfully completed all Building Blocks</br><b>TestAPI:</b> GR_API</br><b>TenantId:</b> ad299b37da30413391e9c28138f0b0cd</br><b>TenantName:</b> FNCORE-30052-D-MC-RDM54c</br><b>CloudOwner:</b> att-nc</br>"
+ },
+ {
+ "requestId": "f1aa7175-c237-4b56-ba64-7cb728a38ff2",
+ "instanceName": "zrdm54cfmgw01",
+ "modelType": "vnf",
+ "instanceType": "createInstance",
+ "startTime": "Mon, 24 Aug 2020 22:38:18 GMT",
+ "finishTime": "Mon, 24 Aug 2020 22:44:24 GMT",
+ "jobStatus": "COMPLETE",
+ "additionalInfo": "<b>Source:</b> VID</br><b>StatusMessage:</b>STATUS: ALaCarte-Vnf-createInstance request was executed correctly.</br><b>FlowStatus:</b> Successfully completed all Building Blocks</br><b>TestAPI:</b> GR_API</br><b>TenantId:</b> ad299b37da30413391e9c28138f0b0cd</br><b>TenantName:</b> FNCORE-30052-D-MC-RDM54c</br><b>CloudOwner:</b> att-nc</br><b>PlatformName:</b> FIRSTNET-DEDICATED,NETWORK-CLOUD</br><b>LineOfBusiness:</b> FIRSTNET</br>"
+ },
+ {
+ "requestId": "7ba7900c-3e51-4d87-b1b4-3c53bdfaaa7d",
+ "instanceName": "zrdm54cfmgw01_svc",
+ "modelType": "service",
+ "instanceType": "createInstance",
+ "startTime": "Mon, 24 Aug 2020 22:37:53 GMT",
+ "finishTime": "Mon, 24 Aug 2020 22:38:10 GMT",
+ "jobStatus": "COMPLETE",
+ "additionalInfo": "<b>Source:</b> VID</br><b>StatusMessage:</b>STATUS: ALaCarte-Service-createInstance request was executed correctly.</br><b>FlowStatus:</b> Successfully completed all Building Blocks</br><b>SubscriptionServiceType:</b> FIRSTNET</br><b>Alacarte:</b> true</br><b>TestAPI:</b> GR_API</br><b>ProjectName: FIRSTNET</br><b>OwningEntityId:</b> 10c645f5-9924-4b89-bec0-b17cf49d3cad</br><b>OwningEntityName:</b> MOBILITY-CORE</br>"
+ }
+ ];
+}
diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json
index 41f65ff65..52e72504d 100644
--- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json
+++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json
@@ -33,5 +33,6 @@
"FLAG_2008_REMOVE_PAUSE_INSTANTIATION" : true,
"FLAG_2008_DISABLE_DRAG_FOR_BASE_MODULE" : true,
"FLAG_2008_CREATE_VFMODULE_INSTANTIATION_ORDER_NUMBER": true,
- "FLAG_2011_EXPORT_MSO_STATUS": true
+ "FLAG_2011_EXPORT_MSO_STATUS": true,
+ "FLAG_EXTENDED_MACRO_PNF_CONFIG": false
}
diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/vid.mock.ts b/vid-webpack-master/cypress/support/jsonBuilders/mocks/vid.mock.ts
index 2569556e2..2b2b36a64 100644
--- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/vid.mock.ts
+++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/vid.mock.ts
@@ -7,6 +7,7 @@ declare namespace Cypress {
initAuditInfoMSOALaCarte: typeof initAuditInfoMSOALaCarte;
initAsyncInstantiation : typeof initAsyncInstantiation;
mockLatestVersionForService : typeof mockLatestVersionForService;
+ initAuditInfoMSOALaCarteNew: typeof initAuditInfoMSOALaCarteNew;
}
}
@@ -94,6 +95,19 @@ function initAuditInfoMSOALaCarte(response? : JSON, delay?: number, status?: num
})
}
+function initAuditInfoMSOALaCarteNew(response? : JSON, delay?: number, status?: number) : void {
+ cy.readFile('../vid-automation/src/test/resources/a-la-carte/auditInfoMSOALaCarteNew.json').then((res) => {
+ cy.server()
+ .route({
+ method: 'GET',
+ delay : delay ? delay : 0,
+ status : status ? status : 200,
+ url : Cypress.config('baseUrl') + "/asyncInstantiation/auditStatus/**/mso**",
+ response : response ? response : res
+ }).as('initAuditInfoMSOALaCarteNew');
+ })
+}
+
function initAsyncInstantiation(response? : JSON, delay?: number, status?: number) : void {
cy.readFile('cypress/support/jsonBuilders/mocks/jsons/basicAsyncInstantiation.json').then((res) => {
cy.server()
@@ -137,6 +151,7 @@ Cypress.Commands.add('preventErrorsOnLoading', preventErrorsOnLoading);
Cypress.Commands.add('initCategoryParameter', initCategoryParameter);
Cypress.Commands.add('initAuditInfoMSO', initAuditInfoMSO);
Cypress.Commands.add('initAuditInfoMSOALaCarte', initAuditInfoMSOALaCarte);
+Cypress.Commands.add('initAuditInfoMSOALaCarteNew', initAuditInfoMSOALaCarteNew);
Cypress.Commands.add('initAsyncInstantiation', initAsyncInstantiation);
Cypress.Commands.add('mockLatestVersionForService', mockLatestVersionForService);
diff --git a/vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.ts b/vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.ts
index d8d3c32ac..bd2d77d99 100644
--- a/vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.ts
+++ b/vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.ts
@@ -151,6 +151,7 @@ export class AuditInfoModalComponent {
.subscribe((res: AuditStatus[][]) => {
this.vidInfoData = res[0];
this.msoInfoData = res[1];
+ this.msoInfoData.sort(this.getSortOrder("startTime"));
this.isLoading = false;
});
}
@@ -186,6 +187,17 @@ export class AuditInfoModalComponent {
this.dataIsReady = true;
}
+
+ //Comparer Function
+ getSortOrder(timestamp) {
+ return (obj1, obj2) =>{
+
+ let firstObj = obj1[timestamp];
+ let secondObj = obj2[timestamp];
+ return ((secondObj < firstObj) ? -1 : ((secondObj > firstObj) ? 1 : 0));
+
+ }
+ }
readOnlyRetryUrl = (): string =>
`../../serviceModels.htm?more#/servicePlanning/RETRY?serviceModelId=${this.serviceModelId}&jobId=${this.jobId}`