From 5a79bce20e3a38ab9f4ea59d416c28b870b3a642 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Mon, 6 May 2024 00:23:18 +0200 Subject: [PATCH] add scan tests --- src/frontend/tests/pages/pui_scan.ts | 88 ++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 src/frontend/tests/pages/pui_scan.ts diff --git a/src/frontend/tests/pages/pui_scan.ts b/src/frontend/tests/pages/pui_scan.ts new file mode 100644 index 0000000000..c46b0f3f28 --- /dev/null +++ b/src/frontend/tests/pages/pui_scan.ts @@ -0,0 +1,88 @@ +import { test } from '../baseFixtures'; +import { baseUrl } from '../defaults'; +import { doQuickLogin } from '../login'; + +async function defaultScanTest(page, search_text) { + await doQuickLogin(page); + + await page.goto(`${baseUrl}/scan`); + await page.getByPlaceholder('Select input method').click(); + await page.getByRole('option', { name: 'Manual input' }).click(); + await page.getByPlaceholder('Enter item serial or data').click(); + + // nonsense data + await page.getByPlaceholder('Enter item serial or data').fill('123'); + await page.getByPlaceholder('Enter item serial or data').press('Enter'); + await page.getByRole('cell', { name: '123' }).click(); + await page.getByRole('cell', { name: 'manually' }).click(); + await page.getByRole('button', { name: 'Lookup part' }).click(); + await page.getByRole('button', { name: 'Delete' }).click(); + + await page.getByPlaceholder('Enter item serial or data').fill(search_text); + await page.getByPlaceholder('Enter item serial or data').press('Enter'); + await page.getByRole('checkbox').nth(2).check(); + await page.getByRole('button', { name: 'Lookup part' }).click(); +} + +test('PUI - Pages - Index - Scan - Part', async ({ page }) => { + await defaultScanTest(page, '{"part": 1}'); + + // part: 1 + await page.getByText('R_10R_0402_1%').waitFor(); + await page.getByText('Stock:').waitFor(); + await page.getByRole('cell', { name: 'part' }).waitFor(); +}); + +test('PUI - Pages - Index - Scan - Stockitem', async ({ page }) => { + await defaultScanTest(page, '{"stockitem": 408}'); + + // stockitem: 408 + await page.getByText('1551ABK').waitFor(); + await page.getByText('Quantity: 145').waitFor(); + await page.getByRole('cell', { name: 'Quantity: 145' }).waitFor(); +}); + +test('PUI - Pages - Index - Scan - StockLocation', async ({ page }) => { + await defaultScanTest(page, '{"stocklocation": 3}'); + + // stocklocation: 3 + await page.getByText('Storage Room B', { exact: true }).waitFor(); + await page.getByText('Storage Room B (green door)').waitFor(); + await page.getByRole('cell', { name: 'stocklocation' }).waitFor(); +}); + +test('PUI - Pages - Index - Scan - SupplierPart', async ({ page }) => { + await defaultScanTest(page, '{"supplierpart": 204}'); + + // supplierpart: 204 + await page.waitForTimeout(1000); + await page.getByText('1551ABK').first().waitFor(); + await page.getByRole('cell', { name: 'supplierpart' }).waitFor(); +}); + +test('PUI - Pages - Index - Scan - PurchaseOrder', async ({ page }) => { + await defaultScanTest(page, '{"purchaseorder": 12}'); + + // purchaseorder: 12 + await page.getByText('PO0012').waitFor(); + await page.getByText('Wire from Wirey').waitFor(); + await page.getByRole('cell', { name: 'purchaseorder' }).waitFor(); +}); + +test('PUI - Pages - Index - Scan - SalesOrder', async ({ page }) => { + await defaultScanTest(page, '{"salesorder": 6}'); + + // salesorder: 6 + await page.getByText('SO0006').waitFor(); + await page.getByText('Selling more stuff to this').waitFor(); + await page.getByRole('cell', { name: 'salesorder' }).waitFor(); +}); + +test('PUI - Pages - Index - Scan - Build', async ({ page }) => { + await defaultScanTest(page, '{"build": 8}'); + + // build: 8 + await page.getByText('BO0008').waitFor(); + await page.getByText('PCBA build').waitFor(); + await page.getByRole('cell', { name: 'build', exact: true }).waitFor(); +});