mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-17 20:45:44 +00:00
* Make initial data query wait until options query is complete * Fix form error issues - Form fields were being re-constructed * Update playwright tests - check for form error message * Prevent reconstruction of form fields * Hide form elements until OPTIONS request is complete * Fix for <ChoiceField /> - "value" must be stringified! * Handle undefined choice values * Add "batch code" to stock detail page * Fix for initial focus * Allow form field definition to change externally * Force override of fetched data * Update playwright tests * Add backup value * Cleanup initialdataquery * Unit test updates * Test updates * Tweak API Form * Adjust playwright test
66 lines
2.2 KiB
TypeScript
66 lines
2.2 KiB
TypeScript
import { test } from './baseFixtures.js';
|
|
import { baseUrl } from './defaults.js';
|
|
import { doQuickLogin } from './login.js';
|
|
|
|
// Helper function to set the value of a specific table filter
|
|
const setFilter = async (page, name: string, value: string) => {
|
|
await page.getByLabel('table-select-filters').click();
|
|
await page.getByRole('button', { name: 'Add Filter' }).click();
|
|
await page.getByPlaceholder('Select filter').click();
|
|
await page.getByRole('option', { name: name, exact: true }).click();
|
|
await page.getByPlaceholder('Select filter value').click();
|
|
await page.getByRole('option', { name: value, exact: true }).click();
|
|
await page.getByLabel('filter-drawer-close').click();
|
|
};
|
|
|
|
// Helper function to clear table filters
|
|
const clearFilters = async (page) => {
|
|
await page.getByLabel('table-select-filters').click();
|
|
await page.getByRole('button', { name: 'Clear Filters' }).click();
|
|
await page.getByLabel('filter-drawer-close').click();
|
|
};
|
|
|
|
test('PUI - Tables - Filters', async ({ page }) => {
|
|
await doQuickLogin(page);
|
|
|
|
// Head to the "build order list" page
|
|
await page.goto(`${baseUrl}/build/`);
|
|
|
|
await setFilter(page, 'Status', 'Complete');
|
|
await setFilter(page, 'Responsible', 'allaccess');
|
|
await setFilter(page, 'Project Code', 'PRJ-NIM');
|
|
|
|
await clearFilters(page);
|
|
|
|
// Head to the "part list" page
|
|
await page.goto(`${baseUrl}/part/category/index/parts/`);
|
|
|
|
await setFilter(page, 'Assembly', 'Yes');
|
|
|
|
await clearFilters(page);
|
|
|
|
// Head to the "purchase order list" page
|
|
await page.goto(`${baseUrl}/purchasing/index/purchaseorders/`);
|
|
|
|
await setFilter(page, 'Status', 'Complete');
|
|
await setFilter(page, 'Responsible', 'readers');
|
|
await setFilter(page, 'Assigned to me', 'No');
|
|
await setFilter(page, 'Project Code', 'PRO-ZEN');
|
|
|
|
await clearFilters(page);
|
|
});
|
|
|
|
test('PUI - Tables - Columns', async ({ page }) => {
|
|
await doQuickLogin(page);
|
|
|
|
// Go to the "stock list" page
|
|
await page.goto(`${baseUrl}/stock/location/index/stock-items`);
|
|
|
|
// Open column selector
|
|
await page.getByLabel('table-select-columns').click();
|
|
|
|
// De-select some items
|
|
await page.getByRole('menuitem', { name: 'Description' }).click();
|
|
await page.getByRole('menuitem', { name: 'Stocktake' }).click();
|
|
});
|