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', exact: true }).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('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('Pages - Index - Scan (Stockitem)', async ({ page }) => { await defaultScanTest(page, '{"stockitem": 408}'); // stockitem: 408 await page.getByText('1551ABK').waitFor(); await page.getByText('Quantity: 100').waitFor(); await page.getByRole('cell', { name: 'Quantity: 100' }).waitFor(); }); test('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('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('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('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('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(); }); test('Pages - Index - Scan (General)', async ({ page }) => { await defaultScanTest(page, '{"unknown": 312}'); await page.getByText('"unknown": 312').waitFor(); // checkAll await page.getByRole('checkbox').nth(0).check(); // Delete await page.getByRole('button', { name: 'Delete', exact: true }).click(); // Reload to check history is working await page.goto(`${baseUrl}/scan`); await page.getByText('"unknown": 312').waitFor(); // Clear history await page.getByRole('button', { name: 'Delete History' }).click(); await page.getByText('No history').waitFor(); // reload again await page.goto(`${baseUrl}/scan`); await page.getByText('No history').waitFor(); // Empty dummy input await page.getByPlaceholder('Enter item serial or data').fill(''); await page.getByPlaceholder('Enter item serial or data').press('Enter'); // Empty add dummy item await page.getByRole('button', { name: 'Add dummy item' }).click(); // Empty plus sign await page .locator('div') .filter({ hasText: /^InputAdd dummy item$/ }) .getByRole('button') .first() .click(); // Toggle fullscreen await page.getByRole('button', { name: 'Toggle Fullscreen' }).click(); await page.waitForTimeout(1000); await page.getByRole('button', { name: 'Toggle Fullscreen' }).click(); });