mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 13:15:43 +00:00 
			
		
		
		
	[PUI] Page titles (#8467)
* Add <PageTitle /> component * Use useEffect to override hard-coded value * Ensure page titles are tracked across the site * Adjust unit tests * Playwright test updates * Tweak tests * Update InvenTreeTable.tsx Revert unused change
This commit is contained in:
		| @@ -34,7 +34,7 @@ export const doQuickLogin = async ( | ||||
|   await page.goto(`${url}/login/?login=${username}&password=${password}`); | ||||
|   await page.waitForURL('**/platform/home'); | ||||
|  | ||||
|   await page.getByText(/InvenTree Demo Server/).waitFor(); | ||||
|   await page.getByText(/InvenTree Demo Server -/).waitFor(); | ||||
| }; | ||||
|  | ||||
| export const doLogout = async (page) => { | ||||
|   | ||||
| @@ -100,14 +100,12 @@ test('Parts - Allocations', async ({ page }) => { | ||||
|   await doQuickLogin(page); | ||||
|  | ||||
|   // Let's look at the allocations for a single stock item | ||||
|   await page.goto(`${baseUrl}/stock/item/324/`); | ||||
|   await page.getByRole('tab', { name: 'Allocations' }).click(); | ||||
|  | ||||
|   // TODO: Un-comment these lines! | ||||
|   // await page.goto(`${baseUrl}/stock/item/324/`); | ||||
|   // await page.getByRole('tab', { name: 'Allocations' }).click(); | ||||
|  | ||||
|   // await page.getByRole('button', { name: 'Build Order Allocations' }).waitFor(); | ||||
|   // await page.getByRole('cell', { name: 'Making some blue chairs' }).waitFor(); | ||||
|   // await page.getByRole('cell', { name: 'Making tables for SO 0003' }).waitFor(); | ||||
|   await page.getByRole('button', { name: 'Build Order Allocations' }).waitFor(); | ||||
|   await page.getByRole('cell', { name: 'Making some blue chairs' }).waitFor(); | ||||
|   await page.getByRole('cell', { name: 'Making tables for SO 0003' }).waitFor(); | ||||
|  | ||||
|   // Let's look at the allocations for an entire part | ||||
|   await page.goto(`${baseUrl}/part/74/details`); | ||||
| @@ -172,7 +170,8 @@ test('Parts - Pricing (Nothing, BOM)', async ({ page }) => { | ||||
|  | ||||
|   // Part with no history | ||||
|   await page.goto(`${baseUrl}/part/82/pricing`); | ||||
|   await page.getByText('1551ABK').waitFor(); | ||||
|  | ||||
|   await page.getByText('Small plastic enclosure, black').waitFor(); | ||||
|   await page.getByRole('tab', { name: 'Part Pricing' }).click(); | ||||
|   await page.getByLabel('Part Pricing').getByText('Part Pricing').waitFor(); | ||||
|   await page.getByRole('button', { name: 'Pricing Overview' }).waitFor(); | ||||
| @@ -183,7 +182,7 @@ test('Parts - Pricing (Nothing, BOM)', async ({ page }) => { | ||||
|  | ||||
|   // Part with history | ||||
|   await page.goto(`${baseUrl}/part/108/pricing`); | ||||
|   await page.getByText('Part: Blue Chair').waitFor(); | ||||
|   await page.getByText('A chair - with blue paint').waitFor(); | ||||
|   await page.getByRole('tab', { name: 'Part Pricing' }).click(); | ||||
|   await page.getByLabel('Part Pricing').getByText('Part Pricing').waitFor(); | ||||
|   await page.getByRole('button', { name: 'Pricing Overview' }).waitFor(); | ||||
| @@ -221,7 +220,7 @@ test('Parts - Pricing (Supplier)', async ({ page }) => { | ||||
|  | ||||
|   // Part | ||||
|   await page.goto(`${baseUrl}/part/55/pricing`); | ||||
|   await page.getByText('Part: C_100nF_0603').waitFor(); | ||||
|   await page.getByText('Ceramic capacitor, 100nF in').waitFor(); | ||||
|   await page.getByRole('tab', { name: 'Part Pricing' }).click(); | ||||
|   await page.getByLabel('Part Pricing').getByText('Part Pricing').waitFor(); | ||||
|   await page.getByRole('button', { name: 'Pricing Overview' }).waitFor(); | ||||
| @@ -247,7 +246,7 @@ test('Parts - Pricing (Variant)', async ({ page }) => { | ||||
|  | ||||
|   // Part | ||||
|   await page.goto(`${baseUrl}/part/106/pricing`); | ||||
|   await page.getByText('Part: Chair').waitFor(); | ||||
|   await page.getByText('A chair - available in multiple colors').waitFor(); | ||||
|   await page.getByRole('tab', { name: 'Part Pricing' }).click(); | ||||
|   await page.getByLabel('Part Pricing').getByText('Part Pricing').waitFor(); | ||||
|   await page.getByRole('button', { name: 'Pricing Overview' }).waitFor(); | ||||
| @@ -273,7 +272,7 @@ test('Parts - Pricing (Internal)', async ({ page }) => { | ||||
|  | ||||
|   // Part | ||||
|   await page.goto(`${baseUrl}/part/65/pricing`); | ||||
|   await page.getByText('Part: M2x4 SHCS').waitFor(); | ||||
|   await page.getByText('Socket head cap screw, M2').waitFor(); | ||||
|   await page.getByRole('tab', { name: 'Part Pricing' }).click(); | ||||
|   await page.getByLabel('Part Pricing').getByText('Part Pricing').waitFor(); | ||||
|   await page.getByRole('button', { name: 'Pricing Overview' }).waitFor(); | ||||
| @@ -298,7 +297,7 @@ test('Parts - Pricing (Purchase)', async ({ page }) => { | ||||
|  | ||||
|   // Part | ||||
|   await page.goto(`${baseUrl}/part/69/pricing`); | ||||
|   await page.getByText('Part: 530470210').waitFor(); | ||||
|   await page.getByText('1.25mm Pitch, PicoBlade PCB').waitFor(); | ||||
|   await page.getByRole('tab', { name: 'Part Pricing' }).click(); | ||||
|   await page.getByLabel('Part Pricing').getByText('Part Pricing').waitFor(); | ||||
|   await page.getByRole('button', { name: 'Pricing Overview' }).waitFor(); | ||||
|   | ||||
| @@ -18,7 +18,7 @@ test('Sales Orders', async ({ page }) => { | ||||
|   await page.getByRole('cell', { name: 'SO0003' }).click(); | ||||
|  | ||||
|   // Order is "on hold". We will "issue" it and then place on hold again | ||||
|   await page.getByText('Sales Order: SO0003').waitFor(); | ||||
|   await page.getByText('Selling stuff').first().waitFor(); | ||||
|   await page.getByText('On Hold').first().waitFor(); | ||||
|   await page.getByRole('button', { name: 'Issue Order' }).click(); | ||||
|   await page.getByRole('button', { name: 'Submit' }).click(); | ||||
|   | ||||
| @@ -14,7 +14,7 @@ test('Basic Login Test', async ({ page }) => { | ||||
|   await page.goto(baseUrl); | ||||
|   await page.waitForURL('**/platform'); | ||||
|  | ||||
|   await page.getByText('InvenTree Demo Server').waitFor(); | ||||
|   await page.getByText('InvenTree Demo Server -').waitFor(); | ||||
|  | ||||
|   // Check that the username is provided | ||||
|   await page.getByText(user.username); | ||||
| @@ -45,7 +45,7 @@ test('Quick Login Test', async ({ page }) => { | ||||
|   await page.goto(baseUrl); | ||||
|   await page.waitForURL('**/platform'); | ||||
|  | ||||
|   await page.getByText('InvenTree Demo Server').waitFor(); | ||||
|   await page.getByText('InvenTree Demo Server - ').waitFor(); | ||||
|  | ||||
|   // Logout (via URL) | ||||
|   await page.goto(`${baseUrl}/logout/`); | ||||
|   | ||||
| @@ -22,7 +22,7 @@ test('Quick Command - No Keys', async ({ page }) => { | ||||
|     .getByRole('button', { name: 'Dashboard Go to the InvenTree' }) | ||||
|     .click(); | ||||
|  | ||||
|   await page.getByText('InvenTree Demo Server').waitFor(); | ||||
|   await page.getByText('InvenTree Demo Server - ').waitFor(); | ||||
|   await page.waitForURL('**/platform/home'); | ||||
|  | ||||
|   // Use navigation menu | ||||
|   | ||||
| @@ -107,7 +107,7 @@ test('Forms - Supplier Validation', async ({ page, request }) => { | ||||
|   await page.getByLabel('text-field-name').fill(supplierName); | ||||
|   await page.getByRole('button', { name: 'Submit' }).click(); | ||||
|  | ||||
|   await page.getByText(supplierName).waitFor(); | ||||
|   await page.getByText('A description').first().waitFor(); | ||||
|   await page | ||||
|     .getByRole('link', { name: 'https://www.test-website.co.uk' }) | ||||
|     .waitFor(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user