mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 13:15:43 +00:00 
			
		
		
		
	[PUI] Form error fix (#8204)
* Handle simple string error message * Add playwright test for form validation * Render stock unit price / total value * Fix for TextField: - Prevent unnecessary value change - This was removing the field error * Add playwright test for supplier form validation
This commit is contained in:
		| @@ -1,7 +1,7 @@ | ||||
| import { test } from './baseFixtures.js'; | ||||
| import { doQuickLogin } from './login.js'; | ||||
|  | ||||
| test('PUI - Modals as admin', async ({ page }) => { | ||||
| test('Modals as admin', async ({ page }) => { | ||||
|   await doQuickLogin(page, 'admin', 'inventree'); | ||||
|  | ||||
|   // use server info | ||||
|   | ||||
| @@ -2,7 +2,7 @@ import { test } from '../baseFixtures.ts'; | ||||
| import { baseUrl } from '../defaults.ts'; | ||||
| import { doQuickLogin } from '../login.ts'; | ||||
|  | ||||
| test('PUI - Pages - Build Order', async ({ page }) => { | ||||
| test('Pages - Build Order', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/part/`); | ||||
| @@ -82,7 +82,7 @@ test('PUI - Pages - Build Order', async ({ page }) => { | ||||
|     .waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Build Order - Build Outputs', async ({ page }) => { | ||||
| test('Pages - Build Order - Build Outputs', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/part/`); | ||||
|   | ||||
| @@ -3,7 +3,7 @@ import { doQuickLogin } from '../login.js'; | ||||
|  | ||||
| const newPartName = 'UITESTIN123'; | ||||
|  | ||||
| test('PUI - Pages - Index - Playground', async ({ page }) => { | ||||
| test('Pages - Index - Playground', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto('./'); | ||||
| @@ -72,7 +72,7 @@ test('PUI - Pages - Index - Playground', async ({ page }) => { | ||||
|   await page.getByText('Attention needed').waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Index - Dashboard', async ({ page }) => { | ||||
| test('Pages - Index - Dashboard', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   // Dashboard auto update | ||||
|   | ||||
| @@ -2,7 +2,7 @@ import { test } from '../baseFixtures.ts'; | ||||
| import { baseUrl } from '../defaults.ts'; | ||||
| import { doQuickLogin } from '../login.ts'; | ||||
|  | ||||
| test('PUI - Sales Orders', async ({ page }) => { | ||||
| test('Sales Orders', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/home`); | ||||
| @@ -41,7 +41,7 @@ test('PUI - Sales Orders', async ({ page }) => { | ||||
|   await page.getByRole('button', { name: 'Issue Order' }).waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Purchase Orders', async ({ page }) => { | ||||
| test('Purchase Orders', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/home`); | ||||
| @@ -61,7 +61,7 @@ test('PUI - Purchase Orders', async ({ page }) => { | ||||
|   await page.getByRole('button', { name: 'Issue Order' }).waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Purchase Orders - Barcodes', async ({ page }) => { | ||||
| test('Purchase Orders - Barcodes', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/purchasing/purchase-order/13/detail`); | ||||
|   | ||||
| @@ -2,7 +2,7 @@ import { test } from '../baseFixtures'; | ||||
| import { baseUrl } from '../defaults'; | ||||
| import { doQuickLogin } from '../login'; | ||||
|  | ||||
| test('PUI - Pages - Part - Locking', async ({ page }) => { | ||||
| test('Pages - Part - Locking', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   // Navigate to a known assembly which is *not* locked | ||||
| @@ -23,7 +23,7 @@ test('PUI - Pages - Part - Locking', async ({ page }) => { | ||||
|   await page.getByText('Part parameters cannot be').waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Part - Pricing (Nothing, BOM)', async ({ page }) => { | ||||
| test('Pages - Part - Pricing (Nothing, BOM)', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   // Part with no history | ||||
| @@ -72,7 +72,7 @@ test('PUI - Pages - Part - Pricing (Nothing, BOM)', async ({ page }) => { | ||||
|   await page.waitForURL('**/part/98/**'); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Part - Pricing (Supplier)', async ({ page }) => { | ||||
| test('Pages - Part - Pricing (Supplier)', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   // Part | ||||
| @@ -98,7 +98,7 @@ test('PUI - Pages - Part - Pricing (Supplier)', async ({ page }) => { | ||||
|   // await page.waitForURL('**/purchasing/supplier-part/697/'); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Part - Pricing (Variant)', async ({ page }) => { | ||||
| test('Pages - Part - Pricing (Variant)', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   // Part | ||||
| @@ -124,7 +124,7 @@ test('PUI - Pages - Part - Pricing (Variant)', async ({ page }) => { | ||||
|   await page.waitForURL('**/part/109/**'); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Part - Pricing (Internal)', async ({ page }) => { | ||||
| test('Pages - Part - Pricing (Internal)', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   // Part | ||||
| @@ -149,7 +149,7 @@ test('PUI - Pages - Part - Pricing (Internal)', async ({ page }) => { | ||||
|   await page.getByText('Part *M2x4 SHCSSocket head').click(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Part - Pricing (Purchase)', async ({ page }) => { | ||||
| test('Pages - Part - Pricing (Purchase)', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   // Part | ||||
| @@ -171,7 +171,7 @@ test('PUI - Pages - Part - Pricing (Purchase)', async ({ page }) => { | ||||
|   await page.getByText('2022-04-29').waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Part - Attachments', async ({ page }) => { | ||||
| test('Pages - Part - Attachments', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/part/69/attachments`); | ||||
| @@ -193,7 +193,7 @@ test('PUI - Pages - Part - Attachments', async ({ page }) => { | ||||
|   await page.getByRole('button', { name: 'Cancel' }).click(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Part - Parameters', async ({ page }) => { | ||||
| test('Pages - Part - Parameters', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/part/69/parameters`); | ||||
| @@ -220,7 +220,7 @@ test('PUI - Pages - Part - Parameters', async ({ page }) => { | ||||
|   await page.getByRole('button', { name: 'Cancel' }).click(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Part - Notes', async ({ page }) => { | ||||
| test('Pages - Part - Notes', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/part/69/notes`); | ||||
| @@ -241,7 +241,7 @@ test('PUI - Pages - Part - Notes', async ({ page }) => { | ||||
|   await page.getByLabel('Save Notes').waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Part - 404', async ({ page }) => { | ||||
| test('Pages - Part - 404', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/part/99999/`); | ||||
| @@ -251,7 +251,7 @@ test('PUI - Pages - Part - 404', async ({ page }) => { | ||||
|   await page.evaluate(() => console.clear()); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Part - Revision', async ({ page }) => { | ||||
| test('Pages - Part - Revision', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/part/906/details`); | ||||
|   | ||||
| @@ -24,7 +24,7 @@ async function defaultScanTest(page, search_text) { | ||||
|   await page.getByRole('button', { name: 'Lookup part' }).click(); | ||||
| } | ||||
|  | ||||
| test('PUI - Pages - Index - Scan (Part)', async ({ page }) => { | ||||
| test('Pages - Index - Scan (Part)', async ({ page }) => { | ||||
|   await defaultScanTest(page, '{"part": 1}'); | ||||
|  | ||||
|   // part: 1 | ||||
| @@ -33,7 +33,7 @@ test('PUI - Pages - Index - Scan (Part)', async ({ page }) => { | ||||
|   await page.getByRole('cell', { name: 'part' }).waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Index - Scan (Stockitem)', async ({ page }) => { | ||||
| test('Pages - Index - Scan (Stockitem)', async ({ page }) => { | ||||
|   await defaultScanTest(page, '{"stockitem": 408}'); | ||||
|  | ||||
|   // stockitem: 408 | ||||
| @@ -42,7 +42,7 @@ test('PUI - Pages - Index - Scan (Stockitem)', async ({ page }) => { | ||||
|   await page.getByRole('cell', { name: 'Quantity: 100' }).waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Index - Scan (StockLocation)', async ({ page }) => { | ||||
| test('Pages - Index - Scan (StockLocation)', async ({ page }) => { | ||||
|   await defaultScanTest(page, '{"stocklocation": 3}'); | ||||
|  | ||||
|   // stocklocation: 3 | ||||
| @@ -51,7 +51,7 @@ test('PUI - Pages - Index - Scan (StockLocation)', async ({ page }) => { | ||||
|   await page.getByRole('cell', { name: 'stocklocation' }).waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Index - Scan (SupplierPart)', async ({ page }) => { | ||||
| test('Pages - Index - Scan (SupplierPart)', async ({ page }) => { | ||||
|   await defaultScanTest(page, '{"supplierpart": 204}'); | ||||
|  | ||||
|   // supplierpart: 204 | ||||
| @@ -60,7 +60,7 @@ test('PUI - Pages - Index - Scan (SupplierPart)', async ({ page }) => { | ||||
|   await page.getByRole('cell', { name: 'supplierpart' }).waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Index - Scan (PurchaseOrder)', async ({ page }) => { | ||||
| test('Pages - Index - Scan (PurchaseOrder)', async ({ page }) => { | ||||
|   await defaultScanTest(page, '{"purchaseorder": 12}'); | ||||
|  | ||||
|   // purchaseorder: 12 | ||||
| @@ -69,7 +69,7 @@ test('PUI - Pages - Index - Scan (PurchaseOrder)', async ({ page }) => { | ||||
|   await page.getByRole('cell', { name: 'purchaseorder' }).waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Index - Scan (SalesOrder)', async ({ page }) => { | ||||
| test('Pages - Index - Scan (SalesOrder)', async ({ page }) => { | ||||
|   await defaultScanTest(page, '{"salesorder": 6}'); | ||||
|  | ||||
|   // salesorder: 6 | ||||
| @@ -78,7 +78,7 @@ test('PUI - Pages - Index - Scan (SalesOrder)', async ({ page }) => { | ||||
|   await page.getByRole('cell', { name: 'salesorder' }).waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Index - Scan (Build)', async ({ page }) => { | ||||
| test('Pages - Index - Scan (Build)', async ({ page }) => { | ||||
|   await defaultScanTest(page, '{"build": 8}'); | ||||
|  | ||||
|   // build: 8 | ||||
| @@ -87,7 +87,7 @@ test('PUI - Pages - Index - Scan (Build)', async ({ page }) => { | ||||
|   await page.getByRole('cell', { name: 'build', exact: true }).waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Pages - Index - Scan (General)', async ({ page }) => { | ||||
| test('Pages - Index - Scan (General)', async ({ page }) => { | ||||
|   await defaultScanTest(page, '{"unknown": 312}'); | ||||
|   await page.getByText('"unknown": 312').waitFor(); | ||||
|  | ||||
|   | ||||
| @@ -2,7 +2,7 @@ import { expect, test } from './baseFixtures.js'; | ||||
| import { baseUrl, user } from './defaults.js'; | ||||
| import { doLogin, doQuickLogin } from './login.js'; | ||||
|  | ||||
| test('PUI - Basic Login Test', async ({ page }) => { | ||||
| test('Basic Login Test', async ({ page }) => { | ||||
|   await doLogin(page); | ||||
|  | ||||
|   // Check that the username is provided | ||||
| @@ -35,7 +35,7 @@ test('PUI - Basic Login Test', async ({ page }) => { | ||||
|   await page.getByLabel('username'); | ||||
| }); | ||||
|  | ||||
| test('PUI - Quick Login Test', async ({ page }) => { | ||||
| test('Quick Login Test', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   // Check that the username is provided | ||||
|   | ||||
| @@ -2,7 +2,7 @@ import { systemKey, test } from './baseFixtures.js'; | ||||
| import { baseUrl } from './defaults.js'; | ||||
| import { doQuickLogin } from './login.js'; | ||||
|  | ||||
| test('PUI - Quick Command', async ({ page }) => { | ||||
| test('Quick Command', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   // Open Spotlight with Keyboard Shortcut | ||||
| @@ -31,7 +31,7 @@ test('PUI - Quick Command', async ({ page }) => { | ||||
|   await page.waitForURL('**/platform/dashboard'); | ||||
| }); | ||||
|  | ||||
| test('PUI - Quick Command - No Keys', async ({ page }) => { | ||||
| test('Quick Command - No Keys', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   // Open Spotlight with Button | ||||
|   | ||||
							
								
								
									
										127
									
								
								src/frontend/tests/pui_forms.spec.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										127
									
								
								src/frontend/tests/pui_forms.spec.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,127 @@ | ||||
| /** Unit tests for form validation, rendering, etc */ | ||||
| import test from 'playwright/test'; | ||||
|  | ||||
| import { baseUrl } from './defaults'; | ||||
| import { doQuickLogin } from './login'; | ||||
|  | ||||
| test('Forms - Stock Item Validation', async ({ page }) => { | ||||
|   await doQuickLogin(page, 'steven', 'wizardstaff'); | ||||
|   await page.goto(`${baseUrl}/stock/location/index/stock-items`); | ||||
|   await page.waitForURL('**/platform/stock/location/**'); | ||||
|  | ||||
|   // Create new stock item form | ||||
|   await page.getByLabel('action-button-add-stock-item').click(); | ||||
|   await page.getByRole('button', { name: 'Submit' }).click(); | ||||
|  | ||||
|   // Check for validation errors | ||||
|   await page.getByText('Form Error').waitFor(); | ||||
|   await page.getByText('Errors exist for one or more form fields').waitFor(); | ||||
|   await page.getByText('Valid part must be supplied').waitFor(); | ||||
|  | ||||
|   // Adjust other field - the errors should persist | ||||
|   await page.getByLabel('text-field-batch').fill('BATCH-123'); | ||||
|   await page.waitForTimeout(250); | ||||
|  | ||||
|   await page.getByText('Valid part must be supplied').waitFor(); | ||||
|  | ||||
|   // Fill out fields | ||||
|   await page.getByLabel('number-field-quantity').fill('-1'); | ||||
|   await page.getByLabel('related-field-part').click(); | ||||
|   await page.getByRole('option', { name: /1551AGY/ }).click(); | ||||
|   await page.getByRole('button', { name: 'Submit' }).click(); | ||||
|  | ||||
|   // Check for validation errors | ||||
|   await page.getByText('Errors exist for one or more form fields').waitFor(); | ||||
|   await page | ||||
|     .getByText(/Ensure this value is greater than or equal to 0/) | ||||
|     .first() | ||||
|     .waitFor(); | ||||
|  | ||||
|   // Set location | ||||
|   await page.getByLabel('related-field-location').click(); | ||||
|   await page.getByRole('option', { name: /Electronics Lab/ }).click(); | ||||
|  | ||||
|   // Create the stock item | ||||
|   await page.getByLabel('number-field-quantity').fill('123'); | ||||
|   await page.getByRole('button', { name: 'Submit' }).click(); | ||||
|  | ||||
|   // Edit the resulting stock item | ||||
|   await page.getByLabel('action-menu-stock-item-actions').click(); | ||||
|   await page.getByLabel('action-menu-stock-item-actions-edit').click(); | ||||
|  | ||||
|   await page.getByLabel('number-field-purchase_price').fill('-1'); | ||||
|   await page.getByRole('button', { name: 'Submit' }).click(); | ||||
|   await page.getByText('Errors exist for one or more form fields').waitFor(); | ||||
|   await page | ||||
|     .getByText('Ensure this value is greater than or equal to 0') | ||||
|     .waitFor(); | ||||
|  | ||||
|   // Check the error message still persists after editing a different field | ||||
|   await page.getByLabel('text-field-packaging').fill('a box'); | ||||
|   await page.waitForTimeout(250); | ||||
|   await page | ||||
|     .getByText('Ensure this value is greater than or equal to 0') | ||||
|     .waitFor(); | ||||
|  | ||||
|   // Correct the price | ||||
|   await page.getByLabel('number-field-purchase_price').fill('1.2345'); | ||||
|   await page.getByRole('button', { name: 'Submit' }).click(); | ||||
|   await page.getByText('Item Updated').waitFor(); | ||||
|  | ||||
|   // Ensure the stock item has been updated correctly | ||||
|   await page.getByText('$151.8435').waitFor(); | ||||
|   await page.getByText('$151.8435').waitFor(); | ||||
|   await page.getByText('a box').waitFor(); | ||||
|   await page.getByRole('cell', { name: 'Electronics Lab' }).waitFor(); | ||||
| }); | ||||
|  | ||||
| test('Forms - Supplier Validation', async ({ page, request }) => { | ||||
|   await doQuickLogin(page, 'steven', 'wizardstaff'); | ||||
|   await page.goto(`${baseUrl}/purchasing/index/suppliers`); | ||||
|   await page.waitForURL('**/purchasing/index/**'); | ||||
|  | ||||
|   await page.getByLabel('action-button-add-company').click(); | ||||
|   await page.getByLabel('text-field-website').fill('not-a-website'); | ||||
|  | ||||
|   await page.getByRole('button', { name: 'Submit' }).click(); | ||||
|  | ||||
|   // Check for validation errors | ||||
|   await page.getByText('Form Error').waitFor(); | ||||
|   await page.getByText('Errors exist for one or more').waitFor(); | ||||
|   await page.getByText('This field may not be blank.').waitFor(); | ||||
|   await page.getByText('Enter a valid URL.').waitFor(); | ||||
|  | ||||
|   // Fill out another field, expect that the errors persist | ||||
|   await page.getByLabel('text-field-description').fill('A description'); | ||||
|   await page.waitForTimeout(250); | ||||
|   await page.getByText('This field may not be blank.').waitFor(); | ||||
|   await page.getByText('Enter a valid URL.').waitFor(); | ||||
|  | ||||
|   // Generate a unique supplier name | ||||
|   const supplierName = `Supplier ${new Date().getTime()}`; | ||||
|  | ||||
|   // Fill with good data | ||||
|   await page | ||||
|     .getByLabel('text-field-website') | ||||
|     .fill('https://www.test-website.co.uk'); | ||||
|   await page.getByLabel('text-field-name').fill(supplierName); | ||||
|   await page.getByRole('button', { name: 'Submit' }).click(); | ||||
|  | ||||
|   await page.getByText(supplierName).waitFor(); | ||||
|   await page | ||||
|     .getByRole('link', { name: 'https://www.test-website.co.uk' }) | ||||
|     .waitFor(); | ||||
|  | ||||
|   // Now, try to create another new supplier with the same name | ||||
|   await page.goto(`${baseUrl}/purchasing/index/suppliers`); | ||||
|   await page.waitForURL('**/purchasing/index/**'); | ||||
|   await page.getByLabel('action-button-add-company').click(); | ||||
|   await page.getByLabel('text-field-name').fill(supplierName); | ||||
|   await page.getByRole('button', { name: 'Submit' }).click(); | ||||
|  | ||||
|   // Is prevented, due to uniqueness requirements | ||||
|   await page | ||||
|     .getByText('Company with this Company name and Email already exists') | ||||
|     .waitFor(); | ||||
|   await page.getByRole('button', { name: 'Cancel' }).click(); | ||||
| }); | ||||
| @@ -2,7 +2,7 @@ import { test } from './baseFixtures.js'; | ||||
| import { baseUrl } from './defaults.js'; | ||||
| import { doQuickLogin } from './login.js'; | ||||
|  | ||||
| test('PUI - Parts', async ({ page }) => { | ||||
| test('Parts', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/home`); | ||||
| @@ -42,7 +42,7 @@ test('PUI - Parts', async ({ page }) => { | ||||
|   await page.getByRole('tab', { name: 'Build Orders' }).click(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Parts - Manufacturer Parts', async ({ page }) => { | ||||
| test('Parts - Manufacturer Parts', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/part/84/manufacturers`); | ||||
| @@ -55,7 +55,7 @@ test('PUI - Parts - Manufacturer Parts', async ({ page }) => { | ||||
|   await page.getByText('1551ACLR - 1551ACLR').waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Parts - Supplier Parts', async ({ page }) => { | ||||
| test('Parts - Supplier Parts', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/part/15/suppliers`); | ||||
| @@ -68,7 +68,7 @@ test('PUI - Parts - Supplier Parts', async ({ page }) => { | ||||
|   await page.getByText('DIG-84670-SJI - R_550R_0805_1%').waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Sales', async ({ page }) => { | ||||
| test('Sales', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/sales/index/`); | ||||
| @@ -119,7 +119,7 @@ test('PUI - Sales', async ({ page }) => { | ||||
|   await page.getByRole('tab', { name: 'Notes' }).click(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Scanning', async ({ page }) => { | ||||
| test('Scanning', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.getByLabel('Homenav').click(); | ||||
| @@ -140,7 +140,7 @@ test('PUI - Scanning', async ({ page }) => { | ||||
|   await page.getByRole('option', { name: 'Manual input' }).click(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Language / Color', async ({ page }) => { | ||||
| test('Language / Color', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.getByRole('button', { name: 'Ally Access' }).click(); | ||||
| @@ -174,7 +174,7 @@ test('PUI - Language / Color', async ({ page }) => { | ||||
|   await page.waitForURL('**/platform/dashboard'); | ||||
| }); | ||||
|  | ||||
| test('PUI - Company', async ({ page }) => { | ||||
| test('Company', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/company/1/details`); | ||||
|   | ||||
| @@ -8,7 +8,7 @@ import { setPluginState } from './settings.js'; | ||||
|  * Select a number of stock items from the table, | ||||
|  * and print labels against them | ||||
|  */ | ||||
| test('PUI - Label Printing', async ({ page }) => { | ||||
| test('Label Printing', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/stock/location/index/`); | ||||
| @@ -52,7 +52,7 @@ test('PUI - Label Printing', async ({ page }) => { | ||||
|  * Navigate to a PurchaseOrder detail page, | ||||
|  * and print a report against it. | ||||
|  */ | ||||
| test('PUI - Report Printing', async ({ page }) => { | ||||
| test('Report Printing', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/stock/location/index/`); | ||||
| @@ -82,7 +82,7 @@ test('PUI - Report Printing', async ({ page }) => { | ||||
|   await page.context().close(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Report Editing', async ({ page, request }) => { | ||||
| test('Report Editing', async ({ page, request }) => { | ||||
|   const [username, password] = ['admin', 'inventree']; | ||||
|   await doQuickLogin(page, username, password); | ||||
|  | ||||
|   | ||||
| @@ -3,7 +3,7 @@ import { apiUrl, baseUrl } from './defaults.js'; | ||||
| import { doQuickLogin } from './login.js'; | ||||
| import { setSettingState } from './settings.js'; | ||||
|  | ||||
| test('PUI - Admin', async ({ page }) => { | ||||
| test('Admin', async ({ page }) => { | ||||
|   // Note here we login with admin access | ||||
|   await doQuickLogin(page, 'admin', 'inventree'); | ||||
|  | ||||
| @@ -86,7 +86,7 @@ test('PUI - Admin', async ({ page }) => { | ||||
|   await page.getByRole('button', { name: 'Submit' }).click(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Admin - Barcode History', async ({ page, request }) => { | ||||
| test('Admin - Barcode History', async ({ page, request }) => { | ||||
|   // Login with admin credentials | ||||
|   await doQuickLogin(page, 'admin', 'inventree'); | ||||
|  | ||||
| @@ -123,7 +123,7 @@ test('PUI - Admin - Barcode History', async ({ page, request }) => { | ||||
|   }); | ||||
| }); | ||||
|  | ||||
| test('PUI - Admin - Unauthorized', async ({ page }) => { | ||||
| test('Admin - Unauthorized', async ({ page }) => { | ||||
|   // Try to access "admin" page with a non-staff user | ||||
|   await doQuickLogin(page, 'allaccess', 'nolimits'); | ||||
|  | ||||
|   | ||||
| @@ -2,7 +2,7 @@ import { test } from './baseFixtures.js'; | ||||
| import { baseUrl } from './defaults.js'; | ||||
| import { doQuickLogin } from './login.js'; | ||||
|  | ||||
| test('PUI - Stock', async ({ page }) => { | ||||
| test('Stock', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/stock/location/index/`); | ||||
| @@ -32,7 +32,7 @@ test('PUI - Stock', async ({ page }) => { | ||||
|   await page.getByRole('tab', { name: 'Installed Items' }).click(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Purchasing', async ({ page }) => { | ||||
| test('Purchasing', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.getByRole('tab', { name: 'Purchasing' }).click(); | ||||
| @@ -82,7 +82,7 @@ test('PUI - Purchasing', async ({ page }) => { | ||||
|   await page.getByRole('tab', { name: 'Details' }).waitFor(); | ||||
| }); | ||||
|  | ||||
| test('PUI - Stock Location Tree', async ({ page }) => { | ||||
| test('Stock Location Tree', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/stock/location/index/`); | ||||
|   | ||||
| @@ -20,7 +20,7 @@ const clearFilters = async (page) => { | ||||
|   await page.getByLabel('filter-drawer-close').click(); | ||||
| }; | ||||
|  | ||||
| test('PUI - Tables - Filters', async ({ page }) => { | ||||
| test('Tables - Filters', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   // Head to the "build order list" page | ||||
| @@ -50,7 +50,7 @@ test('PUI - Tables - Filters', async ({ page }) => { | ||||
|   await clearFilters(page); | ||||
| }); | ||||
|  | ||||
| test('PUI - Tables - Columns', async ({ page }) => { | ||||
| test('Tables - Columns', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   // Go to the "stock list" page | ||||
|   | ||||
		Reference in New Issue
	
	Block a user