Skip to content

Commit

Permalink
Playwright tests
Browse files Browse the repository at this point in the history
  • Loading branch information
SchrodingersGat committed Dec 16, 2024
1 parent e4413c7 commit 216bd26
Showing 1 changed file with 78 additions and 0 deletions.
78 changes: 78 additions & 0 deletions src/frontend/tests/pages/pui_purchase_order.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { test } from '../baseFixtures.ts';
import { baseUrl } from '../defaults.ts';
import { clickButtonIfVisible, openFilterDrawer } from '../helpers.ts';
import { doQuickLogin } from '../login.ts';

Expand Down Expand Up @@ -76,6 +77,83 @@ test('Purchase Orders - Filters', async ({ page }) => {
await page.getByRole('option', { name: 'Target Date After' }).waitFor();
});

test('Purchase Orders - Order Parts', async ({ page }) => {
await doQuickLogin(page);

// Open "Order Parts" wizard from the "parts" table
await page.getByRole('tab', { name: 'Parts' }).click();
await page
.getByLabel('panel-tabs-partcategory')
.getByRole('tab', { name: 'Parts' })
.click();

// Select multiple parts
for (let ii = 1; ii < 5; ii++) {
await page.getByLabel(`Select record ${ii}`, { exact: true }).click();
}

await page.getByLabel('action-menu-part-actions').click();
await page.getByLabel('action-menu-part-actions-order-parts').click();
await page
.getByRole('heading', { name: 'Order Parts' })
.locator('div')
.first()
.waitFor();
await page.getByRole('banner').getByRole('button').click();

// Open "Order Parts" wizard from the "Stock Items" table
await page.getByRole('tab', { name: 'Stock' }).click();
await page.getByRole('tab', { name: 'Stock Items' }).click();

// Select multiple stock items
for (let ii = 2; ii < 7; ii += 2) {
await page.getByLabel(`Select record ${ii}`, { exact: true }).click();
}

await page
.getByLabel('Stock Items')
.getByLabel('action-menu-stock-actions')
.click();
await page.getByLabel('action-menu-stock-actions-order-stock').click();
await page.getByRole('banner').getByRole('button').click();

// Order from the part detail page
await page.goto(`${baseUrl}/part/69/`);
await page.waitForURL('**/part/69/**');

await page.getByLabel('action-menu-stock-actions').click();
await page.getByLabel('action-menu-stock-actions-order').click();

// Select supplier part
await page.getByLabel('related-field-supplier_part').click();
await page.getByText('WM1731-ND').click();

// Option to create a new supplier part
await page.getByLabel('action-button-new-supplier-part').click();
await page.getByLabel('related-field-supplier', { exact: true }).click();
await page.getByText('Future').click();
await page.getByRole('button', { name: 'Cancel' }).click();

// Select purchase order
await page.getByLabel('related-field-purchase_order').click();
await page.getByText('PO0001').click();

// Option to create a new purchase order
await page.getByLabel('action-button-new-purchase-order').click();
await page.getByLabel('related-field-project_code').click();
await page.getByText('PRJ-PHO').click();
await page.getByRole('button', { name: 'Cancel' }).click();

// Add the part to the purchase order
await page.getByLabel('action-button-add-to-selected').click();
await page.getByLabel('number-field-quantity').fill('100');
await page.waitForTimeout(250);
await page.getByRole('button', { name: 'Submit' }).click();
await page
.getByText('All selected parts added to a purchase order')
.waitFor();
});

/**
* Tests for receiving items against a purchase order
*/
Expand Down

0 comments on commit 216bd26

Please sign in to comment.