const TypeID = '16.PG';//Type ID of the PL or LPG
const LPGlabel = 'cypress';
const ProductTypeID = '272.PGI';//TypeId (hidden column) of the product
const attribute = 'attribute5';//column attribute which we want to check on PL/LPG
//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('React - Products', () => {
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();
});
});
//Products
//1) Find LPG id 16, Lable = cypress
//2) open LPG and check strategy for product MB-0028 (data-row-key = 272.PGI) and check, that strategy is Aggressive
//3) Go to PP table, open OnlineStrategy table and change strategy on row "Beef" from "aggressive" to "moderate"
//4) Go back to LPG and recalculate our "cypress" LPG
//5) Open LPG and check, that strategy has been changed to "moderate"
//6) Go back to PP table OnlineStrategy and change again row "Beef" to previous state (from "moderate" to "aggressive")
//7) Go back to LPG and recalculate our "cypress" LPG
//1) Find LPG id 16, Lable = cypress
it('LPG', () => {
cy.visit('/#/pb/lpgs');
cy.waitForSpinner();
cy.contains('.ucTableHeaderColumnContextMenu', 'Label')
.find('[data-test="quickFilter-input"]')//click on the quick filter
.type(LPGlabel + '{enter}', { force: true });
cy.waitForSpinner();
//2) open LPG and check strategy for product MB-0028 (data-row-key = 272.PGI) and check, that strategy is Aggressive
cy.get(`[data-row-key="${TypeID}"]`)//find row key for our PL/LPG
.contains(LPGlabel)
.click({ force: true });
cy.waitForSpinner();
cy.get(`[data-row-key="${ProductTypeID}"] [data-test-column="${attribute}"]`).should('contain', 'Aggressive');
//3) Go to PP table, open OnlineStrategy table and change strategy on row "Beef" from "aggressive" to "moderate"
cy.visit('/#/md/priceparameters/2378');
cy.url().should('contain', '/#/md/priceparameters/2378');
cy.waitForSpinner();
cy.get('[data-row-key="220.MLTV"]')
.contains('Aggressive').dblclick({ force: true })
cy.contains('li', 'Moderate').click({ force: true });
cy.contains('tr', 'Beef').should('contain', 'Moderate');
//4) Go back to LPG and recalculate our "cypress" LPG
cy.visit('/#/pb/lpgs');
cy.waitForSpinner();
cy.contains('.ucTableHeaderColumnContextMenu', 'Label')
.find('[data-test="quickFilter-input"]')//click on the quick filter
.type(LPGlabel + '{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 LPG and check, that strategy has been changed to "moderate"
cy.get(`[data-row-key="${TypeID}"]`)//find row key for our PL/LPG
.contains(LPGlabel)
.click({ force: true });
cy.waitForSpinner();
cy.get(`[data-row-key="${ProductTypeID}"] [data-test-column="${attribute}"]`).should('contain', 'Moderate');
//6) Go back to PP table OnlineStrategy and change again row "Beef" to previous state (from "moderate" to "aggressive")
cy.visit('/#/md/priceparameters/2378'); //2344 is PP table TargetMargin
cy.url().should('contain', '/#/md/priceparameters/2378'); //assert
cy.waitForSpinner();
cy.get('[data-row-key="220.MLTV"]')
.contains('Moderate').dblclick({ force: true })
cy.contains('li', 'Aggressive').click({ force: true });
cy.contains('tr', 'Beef').should('contain', 'Aggressive');
//7) Go back to LPG and recalculate our "cypress" LPG
cy.visit('/#/pb/lpgs');
cy.waitForSpinner();
cy.contains('.ucTableHeaderColumnContextMenu', 'Label')
.find('[data-test="quickFilter-input"]')//click on the quick filter
.type(LPGlabel + '{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();
});
});
|