...
Code Block | ||||
---|---|---|---|---|
| ||||
const TypeID = '112.PL';//Type ID of the PL or LPG const ID = '112';//ID of the PL or LPG const ProductTypeID = '4845.PLI';//ypeId (hidden column) of the product const attribute = 'attribute4';//column attribute //Js code for LPG calculation handling - it needs to be above cypress code or in different file cy.waitForCalculation = LPGstatus => { cy.get(`[data-row-key="${TypeID}"]`).each(row => { if (row.html().includes('Ready')) { return Promise.resolve(true); } else { cy.get('[data-test=module-header-button-menu] > :nth-child(2)').click(); cy.waitForSpinner(); cy.waitForCalculation(LPGstatus); } }); }; describe('PL test', () => { before(() => { cy.login('demoPartition');//API login ("demoPartition" is the setting configured in file users.js) }); beforeEach(() => { // Configure 'X-PriceFx-Csrf-Token' and 'X-PriceFx-jwt' cookies to be preserved after each test. Cypress.Cookies.preserveOnce('X-PriceFx-Csrf-Token', 'X-PriceFx-jwt'); // Restore the logged in status by restoring the local storage cy.restoreLocalStorage().then(() => { cy.waitForSpinner(); }); }); //1) Find PL id 112, Label = Cypress //2) open PL and check strategy for product MB-003 (data-row-key = 112.PL) and check, that strategy is Competitor based //3) Go to PP table, open PriceStrategy table and change 1st strategy strategy on row "Meatball" from "Competitor based" to "CostPlus" //4) Go back to PL and recalculate our "cypress" PL //5) Open PL and check, that strategy has been changed to "CostPlus" //6) Go back to PP table PriceStrategy and change again row "Meatball" to previous state (from "CostPlus" to "Competitor based") //7) Go back to LPG and recalculate our "cypress" PL //1) Find PL id 112, Label = Cypress it('PL', () => { cy.visit('/#/pb/pl'); cy.waitForSpinner(); cy.contains('.ucTableHeaderColumnContextMenu', 'ID') .find('[data-test="quickFilter-input"]')//click on the quick filter .type(ID + '{enter}', { force: true }); cy.waitForSpinner(); //2) open PL and check strategy for product MB-003 (data-row-key = 112.PL) and check, that strategy is Competitor based cy.get(`[data-row-key="${TypeID}"]`)//find row key for our PL/LPG .contains(ID) .click({ force: true }); cy.waitForSpinner(); cy.get(`[data-row-key="${ProductTypeID}"] [data-test-column="${attribute}"]`).should('contain', 'Competitor Based'); //3) Go to PP table, open PriceStrategy table and change 1st strategy strategy on row "Meatball" from "Competitor based" to "CostPlus" cy.visit('/#/md/priceparameters/2366'); cy.url().should('contain', '/#/md/priceparameters/2366'); cy.waitForSpinner(); cy.get('[data-row-key="193.MLTV"]') .contains('Competitor Based').dblclick({ force: true }) cy.contains('li', 'Cost Plus').click({ force: true }); cy.contains('tr', 'Meatball').should('contain', 'Cost Plus'); //4) Go back to PL and recalculate our "cypress" PL cy.visit('/#/pb/pb'); cy.waitForSpinner(); cy.contains('.ucTableHeaderColumnContextMenu', 'ID') .find('[data-test="quickFilter-input"]')//click on the quick filter .type(ID + '{enter}', { force: true }); cy.waitForSpinner(); cy.get(`[data-row-key="${TypeID}"]`)//select .click({ force: true }); cy.contains('button', 'Calculate') .click({ force: true }); cy.get(`[data-row-key="${TypeID}"]`)//uncheck .click({ force: true }); cy.waitForSpinner(); cy.waitForCalculation(); //5) Open PL and check, that strategy has been changed to "CostPlus" cy.get(`[data-row-key="${TypeID}"]`)//find row key for our PL/LPG .contains(ID)//find string on this row key .click({ force: true }); cy.waitForSpinner(); cy.get(`[data-row-key="${ProductTypeID}"] [data-test-column="${attribute}"]`).should('contain', 'Cost Plus'); //6) Go back to PP table PriceStrategy and change again row "Meatball" to previous state (from "CostPlus" to "Competitor based") cy.visit('/#/md/priceparameters/2366'); cy.url().should('contain', '/#/md/priceparameters/2366'); cy.waitForSpinner(); cy.get('[data-row-key="193.MLTV"]') .contains('Cost Plus').dblclick({ force: true }) cy.contains('li', 'Competitor Based').click({ force: true }); cy.contains('tr', 'Meatball').should('contain', 'Competitor Based'); //7) Go back to LPG and recalculate our "cypress" PL cy.visit('/#/pb/pl'); cy.waitForSpinner(); cy.contains('.ucTableHeaderColumnContextMenu', 'ID') .find('[data-test="quickFilter-input"]')//click on the quick filter .type(ID + '{enter}', { force: true }); cy.waitForSpinner(); cy.get(`[data-row-key="${TypeID}"]`)//select .click({ force: true }); cy.contains('button', 'Calculate') .click({ force: true }); cy.get(`[data-row-key="${TypeID}"]`)//uncheck .click({ force: true }); cy.waitForSpinner(); cy.waitForCalculation(); }); }); |
Info |
---|
Download test |
...
for LoginAPI-PL here. |
...