/// /// import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder'; import {AsyncInstantiationModel} from '../../support/jsonBuilders/models/asyncInstantiation.model'; describe('Instantiation status', function () { var jsonBuilderInstantiationBuilder : JsonBuilder = new JsonBuilder(); var asyncRes: Array; const contextMenuCreateAnotherOne = 'context-menu-create-another-one'; const contextMenuNewViewEdit = 'context-menu-new-view-edit'; beforeEach(() => { cy.clearSessionStorage(); cy.setReduxState(); cy.preventErrorsOnLoading(); cy.initAAIMock(); cy.initVidMock(); jsonBuilderInstantiationBuilder.basicMock('cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json', Cypress.config('baseUrl') + "/asyncInstantiation**", (res: any) => { asyncRes = res; return res; }); cy.login(); }); afterEach(() => { cy.screenshot(); }); it('should display the correct icons per status', function () { const serviceAction:any = {INSTANTIATE : 'Instantiate', DELETE: 'Delete', UPDATE: 'Update', UPGRADE: 'Upgrade'}; cy.openIframe('app/ui/#/instantiationStatus'); for(let i = 0 ; i < asyncRes.length; i++){ cy.getTableRowByIndex('instantiation-status', i).get(`td custom-icon#jobStatusIcon-${i} div`) .should('have.class', `__${getJobIconClass(asyncRes[i].jobStatus)}`); if(asyncRes[i].project){ cy.getTableRowByIndex('instantiation-status', i).get('td#project span').contains(asyncRes[i].project); } if(asyncRes[i].userId){ cy.getTableRowByIndex('instantiation-status', i).get('td#userId span').contains(asyncRes[i].userId); } if(asyncRes[i].tenantName){ cy.getTableRowByIndex('instantiation-status', i).get('td#tenantName span').contains(asyncRes[i].tenantName); } if(asyncRes[i].serviceModelName){ cy.getTableRowByIndex('instantiation-status', i).get('td#serviceModelName span').contains(asyncRes[i].serviceModelName); } if(asyncRes[i].serviceInstanceName){ cy.getTableRowByIndex('instantiation-status', i).get('td#serviceInstanceName span').contains(asyncRes[i].serviceInstanceName); } if(asyncRes[i].serviceModelVersion){ cy.getTableRowByIndex('instantiation-status', i).get('td#serviceModelVersion span').contains(asyncRes[i].serviceModelVersion); } if(asyncRes[i].subscriberName){ cy.getTableRowByIndex('instantiation-status', i).get('td#subscriberName span').contains(asyncRes[i].subscriberName); } if(asyncRes[i].action) { cy.getTableRowByIndex('instantiation-status', i).get('td#action span').contains(serviceAction[asyncRes[i].action]); } } }); function getJobIconClass(status: string) : string{ switch(`${status}`.toUpperCase()) { case 'PENDING' : return "pending"; case 'IN_PROGRESS' : return "in_progress"; case 'PAUSED' : return "pause"; case 'FAILED' : return "x-circle-o"; case 'COMPLETED' : return "success-circle-o"; case 'STOPPED' : return "stop"; case 'COMPLETED_WITH_ERRORS' : return "success_with_warning"; case 'COMPLETED_AND_PAUSED' : return "stopped-upon-success"; default: return "question-mark-circle-o"; } } it('should filter rows by filter text', function () { cy.openIframe('app/ui/#/instantiationStatus'); cy.getElementByDataTestsId("instantiation-status-filter").type("ComplexService"); cy.get('table#instantiation-status tbody tr').should('have.length', 2); }); it('should filter rows by url filter text', function () { cy.openIframe('app/ui/#/instantiationStatus?filterText=ComplexService'); cy.getElementByDataTestsId("instantiation-status-filter").should('have.value','ComplexService'); cy.get('table#instantiation-status tbody tr').should('have.length', 2); }); function getDisabledDropDownItemByDataTestId(testId:String) { return cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='${testId}']`); } function clickOnTitleAndThenOnMenuWithJobId(jobId: string) { cy.getElementByDataTestsId("instantiation-status-title").click(); cy.get('#' + jobId).find('.menu-div').click({force: true}); } it('should disabled correct menu items', function () { cy.openIframe('app/ui/#/instantiationStatus'); // Instantiate action with Job status FAILED - isRetry = true clickOnTitleAndThenOnMenuWithJobId('5c2cd8e5-27d0-42e3-85a1-85db5eaba459'); getDisabledDropDownItemByDataTestId('context-menu-retry').should('not.exist'); getDisabledDropDownItemByDataTestId('context-menu-remove').should('exist'); getDisabledDropDownItemByDataTestId('context-menu-open').should('exist'); getDisabledDropDownItemByDataTestId('context-menu-hide').should('not.exist'); getDisabledDropDownItemByDataTestId('context-menu-audit-info').should('not.exist'); getDisabledDropDownItemByDataTestId(contextMenuCreateAnotherOne).should('not.exist'); // Instantiate action with Job status FAILED - isRetry = false clickOnTitleAndThenOnMenuWithJobId('e1db03c3-6274-4ff7-84cf-7bd3a3946de7'); getDisabledDropDownItemByDataTestId('context-menu-retry').should('not.be.visible'); getDisabledDropDownItemByDataTestId('context-menu-open').should('exist'); getDisabledDropDownItemByDataTestId(contextMenuCreateAnotherOne).should('not.exist'); //Delete action with Job status IN_PROGRESS clickOnTitleAndThenOnMenuWithJobId('850dc7d2-5240-437f-9bcd-b1ed7dc339c2'); getDisabledDropDownItemByDataTestId('context-menu-remove').should('exist'); getDisabledDropDownItemByDataTestId('context-menu-open').should('exist'); getDisabledDropDownItemByDataTestId('context-menu-hide').should('exist'); getDisabledDropDownItemByDataTestId('context-menu-audit-info').should('not.exist'); getDisabledDropDownItemByDataTestId(contextMenuCreateAnotherOne).should('exist'); //Update action with Job status COMPLETED clickOnTitleAndThenOnMenuWithJobId('850dc7d2-5240-437f-9bcd-b1ed7dc339c1'); getDisabledDropDownItemByDataTestId('context-menu-remove').should('exist'); getDisabledDropDownItemByDataTestId('context-menu-open').should('not.exist'); getDisabledDropDownItemByDataTestId('context-menu-hide').should('not.exist'); getDisabledDropDownItemByDataTestId('context-menu-audit-info').should('not.exist'); getDisabledDropDownItemByDataTestId(contextMenuCreateAnotherOne).should('exist'); //COMPLETED_AND_PAUSED clickOnTitleAndThenOnMenuWithJobId('850dc7d2-5240-437f-9bcd-b1ed7dc339d9'); getDisabledDropDownItemByDataTestId('context-menu-retry').should('exist'); getDisabledDropDownItemByDataTestId('context-menu-open').should('exist'); getDisabledDropDownItemByDataTestId('context-menu-audit-info').should('exist'); getDisabledDropDownItemByDataTestId(contextMenuCreateAnotherOne).should('exist'); }); it('clicking on create another one item, go to expected url', function () { //see cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json id:8 const jobId = '5c2cd8e5-27d0-42e3-85a1-85db5eaba459'; const serviceModelId = 'e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0'; const vidBaseUrl = `${Cypress.config().baseUrl}/serviceModels.htm`; cy.openIframe('app/ui/#/instantiationStatus'); clickOnTitleAndThenOnMenuWithJobId(jobId); cy.get('.dropdown-menu').getElementByDataTestsId(contextMenuCreateAnotherOne).contains('Create another one'); cy.get('.dropdown-menu').getElementByDataTestsId(contextMenuCreateAnotherOne).click(); cy.location().should((loc) => { expect(loc.toString()).to.eq(`${vidBaseUrl}#/servicePlanning/RECREATE?serviceModelId=${serviceModelId}&jobId=${jobId}`); }); }); it('clicking on new view edit, go to expected url', function () { //see cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json id:10 const jobId = '850dc7d2-5240-437f-9bcd-b1ed7dc339c1'; const serviceModelId = 'e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0'; const vidBaseUrl = `${Cypress.config().baseUrl}/serviceModels.htm`; const serviceType = 'TYLER%20SILVIA'; cy.openIframe('app/ui/#/instantiationStatus'); clickOnTitleAndThenOnMenuWithJobId(jobId); cy.get('.dropdown-menu').getElementByDataTestsId(contextMenuNewViewEdit).contains('New View/Edit'); cy.get('.dropdown-menu').getElementByDataTestsId(contextMenuNewViewEdit).click(); cy.location().should((location) => { expect(location.toString()).to.eq(`${vidBaseUrl}#/servicePlanning/EDIT?serviceModelId=${serviceModelId}&serviceType=${serviceType}&jobId=${jobId}`); }); }); });