95 lines
3.5 KiB
JavaScript
95 lines
3.5 KiB
JavaScript
import selectors from '../../helpers/selectors.js';
|
|
import getBrowser from '../../helpers/puppeteer';
|
|
|
|
describe('Item fixed prices path', () => {
|
|
let browser;
|
|
let page;
|
|
let httpRequest;
|
|
|
|
beforeAll(async() => {
|
|
browser = await getBrowser();
|
|
page = browser.page;
|
|
await page.loginAndModule('buyer', 'item');
|
|
await page.accessToSection('item.fixedPrice');
|
|
page.on('request', req => {
|
|
if (req.url().includes(`FixedPrices/filter`))
|
|
httpRequest = req.url();
|
|
});
|
|
});
|
|
|
|
afterAll(async() => {
|
|
await browser.close();
|
|
});
|
|
|
|
it('should filter using all the fields', async() => {
|
|
await page.write(selectors.itemFixedPrice.generalSearchFilter, 'item');
|
|
await page.keyboard.press('Enter');
|
|
|
|
expect(httpRequest).toContain('search=item');
|
|
|
|
await page.click(selectors.itemFixedPrice.chip);
|
|
await page.click(selectors.itemFixedPrice.reignFilter);
|
|
|
|
expect(httpRequest).toContain('categoryFk');
|
|
|
|
await page.autocompleteSearch(selectors.itemFixedPrice.typeFilter, 'Alstroemeria');
|
|
|
|
expect(httpRequest).toContain('typeFk');
|
|
|
|
await page.click(selectors.itemFixedPrice.chip);
|
|
await page.autocompleteSearch(selectors.itemFixedPrice.buyerFilter, 'buyerNick');
|
|
|
|
expect(httpRequest).toContain('buyerFk');
|
|
|
|
await page.click(selectors.itemFixedPrice.chip);
|
|
await page.autocompleteSearch(selectors.itemFixedPrice.warehouseFilter, 'Algemesi');
|
|
|
|
expect(httpRequest).toContain('warehouseFk');
|
|
|
|
await page.click(selectors.itemFixedPrice.chip);
|
|
await page.click(selectors.itemFixedPrice.mineFilter);
|
|
|
|
expect(httpRequest).toContain('mine=true');
|
|
|
|
await page.click(selectors.itemFixedPrice.chip);
|
|
await page.click(selectors.itemFixedPrice.hasMinPriceFilter);
|
|
|
|
expect(httpRequest).toContain('hasMinPrice=true');
|
|
|
|
await page.click(selectors.itemFixedPrice.chip);
|
|
await page.click(selectors.itemFixedPrice.addTag);
|
|
await page.autocompleteSearch(selectors.itemFixedPrice.tagFilter, 'Color');
|
|
await page.autocompleteSearch(selectors.itemFixedPrice.tagValueFilter, 'Brown');
|
|
|
|
expect(httpRequest).toContain('tags');
|
|
|
|
await page.click(selectors.itemFixedPrice.chip);
|
|
});
|
|
|
|
it('should click on the add new fixed price button', async() => {
|
|
await page.waitToClick(selectors.itemFixedPrice.add);
|
|
await page.waitForSelector(selectors.itemFixedPrice.fourthFixedPrice);
|
|
});
|
|
|
|
it('should fill the fixed price data', async() => {
|
|
const now = Date.vnNew();
|
|
await page.autocompleteSearch(selectors.itemFixedPrice.fourthWarehouse, 'Warehouse one');
|
|
await page.writeOnEditableTD(selectors.itemFixedPrice.fourthGroupingPrice, '1');
|
|
await page.writeOnEditableTD(selectors.itemFixedPrice.fourthPackingPrice, '1');
|
|
await page.write(selectors.itemFixedPrice.fourthMinPrice, '1');
|
|
await page.pickDate(selectors.itemFixedPrice.fourthStarted, now);
|
|
await page.pickDate(selectors.itemFixedPrice.fourthEnded, now);
|
|
const message = await page.waitForSnackbar();
|
|
|
|
expect(message.text).toContain('Data saved!');
|
|
});
|
|
|
|
it('should reload the section and check the created price has the expected ID', async() => {
|
|
await page.goto(`http://localhost:5000/#!/item/fixed-price`);
|
|
|
|
const result = await page.waitToGetProperty(selectors.itemFixedPrice.fourthItemID, 'value');
|
|
|
|
expect(result).toContain('13');
|
|
});
|
|
});
|