2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-08-07 04:12:11 +00:00

[CI] Playwright improvements (#9395)

* Allow port 4173 (vite preview)

* Change 'base' attr based on vite command

* Allow api_host to be specified separately

* Harden API host functionality

* Adjust server selections

* Cleanup vite.config.ts

* Adjust playwright configuration

- Allow to run in "production" mode
- Builds the code first
- Runs only the backend web server
- Not suitable for coverage

* Tweak github actions

* Tweak QC file

* Reduce number of steps

* Tweak CI file

* Fix typo

* Ensure translation before build

* Fix hard-coded test

* Test tweaks

* uncomment

* Revert some changes

* Run with gunicorn, single worker

* Reduce log output in DEBUG mode

* Update deps

* Add global-setup func

* Fix for .gitignore file

* Cached auth state

* Tweak login func

* Updated tests

* Enable parallel workers again

* Simplify config

* Try with a single worker again

* Single retry mode

* Run auth setup first

- Prevent issues with parallel test doing login

* Improve test setup process

* Tweaks

* Bump to 3 workers

* Tweak playwright settings

* Revert change

* Revert change
This commit is contained in:
Oliver
2025-03-30 14:12:48 +11:00
committed by GitHub
parent 858eb8f807
commit 7f5a447769
40 changed files with 794 additions and 575 deletions

View File

@@ -8,13 +8,15 @@ import {
navigate,
setTableChoiceFilter
} from '../helpers.ts';
import { doQuickLogin } from '../login.ts';
import { doCachedLogin } from '../login.ts';
test('Build Order - Basic Tests', async ({ page }) => {
await doQuickLogin(page);
test('Build Order - Basic Tests', async ({ browser }) => {
const page = await doCachedLogin(browser);
// Navigate to the correct build order
await page.getByRole('tab', { name: 'Manufacturing', exact: true }).click();
await page.getByRole('tab', { name: 'Manufacturing' }).click();
await page.waitForURL('**/manufacturing/index/**');
await loadTab(page, 'Build Orders');
await clearTableFilters(page);
@@ -91,8 +93,8 @@ test('Build Order - Basic Tests', async ({ page }) => {
.waitFor();
});
test('Build Order - Calendar', async ({ page }) => {
await doQuickLogin(page);
test('Build Order - Calendar', async ({ browser }) => {
const page = await doCachedLogin(browser);
await navigate(page, 'manufacturing/index/buildorders');
await activateCalendarView(page);
@@ -114,8 +116,8 @@ test('Build Order - Calendar', async ({ page }) => {
await page.context().close();
});
test('Build Order - Edit', async ({ page }) => {
await doQuickLogin(page);
test('Build Order - Edit', async ({ browser }) => {
const page = await doCachedLogin(browser);
await navigate(page, 'manufacturing/build-order/22/');
@@ -141,8 +143,8 @@ test('Build Order - Edit', async ({ page }) => {
await page.getByRole('button', { name: 'Cancel' }).click();
});
test('Build Order - Build Outputs', async ({ page }) => {
await doQuickLogin(page);
test('Build Order - Build Outputs', async ({ browser }) => {
const page = await doCachedLogin(browser);
await navigate(page, 'manufacturing/index/');
await loadTab(page, 'Build Orders');
@@ -217,8 +219,8 @@ test('Build Order - Build Outputs', async ({ page }) => {
await page.getByText('Build outputs have been completed').waitFor();
});
test('Build Order - Allocation', async ({ page }) => {
await doQuickLogin(page);
test('Build Order - Allocation', async ({ browser }) => {
const page = await doCachedLogin(browser);
await navigate(page, 'manufacturing/build-order/1/line-items');
@@ -317,8 +319,8 @@ test('Build Order - Allocation', async ({ page }) => {
.waitFor();
});
test('Build Order - Filters', async ({ page }) => {
await doQuickLogin(page);
test('Build Order - Filters', async ({ browser }) => {
const page = await doCachedLogin(browser);
await navigate(page, 'manufacturing/index/buildorders');
@@ -351,8 +353,8 @@ test('Build Order - Filters', async ({ page }) => {
await page.getByText('Pending Approval').first().waitFor();
});
test('Build Order - Duplicate', async ({ page }) => {
await doQuickLogin(page);
test('Build Order - Duplicate', async ({ browser }) => {
const page = await doCachedLogin(browser);
await navigate(page, 'manufacturing/build-order/24/details');
await page.getByLabel('action-menu-build-order-').click();