mirror of
https://github.com/inventree/InvenTree.git
synced 2026-03-21 11:44:42 +00:00
refactor(frontend): use central user creds (#11520)
This commit is contained in:
@@ -2,7 +2,13 @@ import { type FullConfig, chromium, request } from '@playwright/test';
|
||||
|
||||
import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import { apiUrl } from '../tests/defaults';
|
||||
import {
|
||||
adminuser,
|
||||
allaccessuser,
|
||||
apiUrl,
|
||||
readeruser,
|
||||
stevenuser
|
||||
} from '../tests/defaults';
|
||||
import { doCachedLogin } from '../tests/login';
|
||||
|
||||
async function globalSetup(config: FullConfig) {
|
||||
@@ -45,26 +51,22 @@ async function globalSetup(config: FullConfig) {
|
||||
|
||||
// Perform login for each user (each in a separate browser instance)
|
||||
await doCachedLogin(await chromium.launch(), {
|
||||
username: 'admin',
|
||||
password: 'inventree',
|
||||
user: adminuser,
|
||||
baseUrl: baseUrl
|
||||
});
|
||||
|
||||
await doCachedLogin(await chromium.launch(), {
|
||||
username: 'allaccess',
|
||||
password: 'nolimits',
|
||||
user: allaccessuser,
|
||||
baseUrl: baseUrl
|
||||
});
|
||||
|
||||
await doCachedLogin(await chromium.launch(), {
|
||||
username: 'reader',
|
||||
password: 'readonly',
|
||||
user: readeruser,
|
||||
baseUrl: baseUrl
|
||||
});
|
||||
|
||||
await doCachedLogin(await chromium.launch(), {
|
||||
username: 'steven',
|
||||
password: 'wizardstaff',
|
||||
user: stevenuser,
|
||||
baseUrl: baseUrl
|
||||
});
|
||||
}
|
||||
|
||||
@@ -11,6 +11,6 @@ export const createApi = ({
|
||||
request.newContext({
|
||||
baseURL: apiUrl,
|
||||
extraHTTPHeaders: {
|
||||
Authorization: `Basic ${btoa(`${username || adminuser.username}:${password || adminuser.password}`)}`
|
||||
Authorization: `Basic ${btoa(`${username || adminuser.username}:${password || adminuser.testcred}`)}`
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import test, { expect } from '@playwright/test';
|
||||
import { noaccessuser } from '../defaults';
|
||||
import { navigate } from '../helpers';
|
||||
import { doLogin } from '../login';
|
||||
|
||||
@@ -22,8 +23,7 @@ test('Customization - Splash', async ({ page }) => {
|
||||
|
||||
test('Customization - Logo', async ({ page }) => {
|
||||
await doLogin(page, {
|
||||
username: 'noaccess',
|
||||
password: 'youshallnotpass'
|
||||
user: noaccessuser
|
||||
});
|
||||
|
||||
await page.waitForLoadState('networkidle');
|
||||
|
||||
@@ -7,13 +7,34 @@ export const homeUrl = `${webUrl}/home`;
|
||||
export const loginUrl = `${webUrl}/login`;
|
||||
export const logoutUrl = `${webUrl}/logout`;
|
||||
|
||||
export const user = {
|
||||
name: 'Ally Access',
|
||||
username: 'allaccess',
|
||||
password: 'nolimits'
|
||||
export type UserType = {
|
||||
name?: string;
|
||||
username: string;
|
||||
testcred: string;
|
||||
};
|
||||
|
||||
export const adminuser = {
|
||||
username: 'admin',
|
||||
password: 'inventree'
|
||||
export const allaccessuser: UserType = {
|
||||
name: 'Ally Access',
|
||||
username: 'allaccess',
|
||||
testcred: 'nolimits'
|
||||
};
|
||||
|
||||
export const adminuser: UserType = {
|
||||
username: 'admin',
|
||||
testcred: 'inventree'
|
||||
};
|
||||
|
||||
export const stevenuser: UserType = {
|
||||
username: 'steven',
|
||||
testcred: 'wizardstaff'
|
||||
};
|
||||
|
||||
export const readeruser: UserType = {
|
||||
username: 'reader',
|
||||
testcred: 'readonly'
|
||||
};
|
||||
|
||||
export const noaccessuser: UserType = {
|
||||
username: 'noaccess',
|
||||
testcred: 'youshallnotpass'
|
||||
};
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
import type { Browser, Page } from '@playwright/test';
|
||||
import { loginUrl, logoutUrl, user, webUrl } from './defaults';
|
||||
import {
|
||||
type UserType,
|
||||
allaccessuser,
|
||||
loginUrl,
|
||||
logoutUrl,
|
||||
webUrl
|
||||
} from './defaults';
|
||||
|
||||
import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
@@ -8,6 +14,7 @@ import { navigate } from './helpers.js';
|
||||
interface LoginOptions {
|
||||
username?: string;
|
||||
password?: string;
|
||||
user?: UserType;
|
||||
baseUrl?: string;
|
||||
}
|
||||
|
||||
@@ -15,8 +22,10 @@ interface LoginOptions {
|
||||
* Perform form based login operation from the "login" URL
|
||||
*/
|
||||
export const doLogin = async (page: Page, options?: LoginOptions) => {
|
||||
const username: string = options?.username ?? user.username;
|
||||
const password: string = options?.password ?? user.password;
|
||||
const username: string =
|
||||
options?.username ?? options?.user?.username ?? allaccessuser.username;
|
||||
const password: string =
|
||||
options?.password ?? options?.user?.testcred ?? allaccessuser.testcred;
|
||||
|
||||
console.log('- Logging in with username:', username);
|
||||
|
||||
@@ -44,8 +53,7 @@ export const doLogin = async (page: Page, options?: LoginOptions) => {
|
||||
};
|
||||
|
||||
export interface CachedLoginOptions {
|
||||
username?: string;
|
||||
password?: string;
|
||||
user?: UserType;
|
||||
url?: string;
|
||||
baseUrl?: string;
|
||||
}
|
||||
@@ -61,8 +69,8 @@ export const doCachedLogin = async (
|
||||
browser: Browser,
|
||||
options?: CachedLoginOptions
|
||||
): Promise<Page> => {
|
||||
const username = options?.username ?? user.username;
|
||||
const password = options?.password ?? user.password;
|
||||
const username = options?.user?.username ?? allaccessuser.username;
|
||||
const password = options?.user?.testcred ?? allaccessuser.testcred;
|
||||
const url = options?.url ?? '';
|
||||
|
||||
// FAIL if an unsupported username is provided
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { test } from '../baseFixtures.js';
|
||||
import { stevenuser } from '../defaults.js';
|
||||
import {
|
||||
clearTableFilters,
|
||||
clickOnParamFilter,
|
||||
@@ -57,8 +58,7 @@ test('Company', async ({ browser }) => {
|
||||
|
||||
test('Company - Parameters', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'steven',
|
||||
password: 'wizardstaff',
|
||||
user: stevenuser,
|
||||
url: 'purchasing/index/suppliers'
|
||||
});
|
||||
|
||||
@@ -75,8 +75,7 @@ test('Company - Parameters', async ({ browser }) => {
|
||||
|
||||
test('Company - Supplier Parts', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'steven',
|
||||
password: 'wizardstaff',
|
||||
user: stevenuser,
|
||||
url: 'purchasing/index/suppliers'
|
||||
});
|
||||
|
||||
|
||||
@@ -417,6 +417,7 @@ test('Parts - Pricing (Supplier)', async ({ browser }) => {
|
||||
|
||||
test('Parts - Pricing (Variant)', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, { url: 'part/106/pricing' });
|
||||
|
||||
await page.getByText('A chair - available in multiple colors').waitFor();
|
||||
await loadTab(page, 'Part Pricing');
|
||||
await page.getByLabel('Part Pricing').getByText('Part Pricing').waitFor();
|
||||
@@ -438,6 +439,7 @@ test('Parts - Pricing (Variant)', async ({ browser }) => {
|
||||
|
||||
test('Parts - Pricing (Internal)', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, { url: 'part/65/pricing' });
|
||||
|
||||
await page.getByText('Socket head cap screw, M2').waitFor();
|
||||
await loadTab(page, 'Part Pricing');
|
||||
await page.getByLabel('Part Pricing').getByText('Part Pricing').waitFor();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { expect } from '@playwright/test';
|
||||
import { test } from '../baseFixtures.ts';
|
||||
import { readeruser } from '../defaults.ts';
|
||||
import {
|
||||
activateCalendarView,
|
||||
activateTableView,
|
||||
@@ -259,8 +260,7 @@ test('Purchase Orders - Barcodes', async ({ browser }) => {
|
||||
|
||||
test('Purchase Orders - Filters', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'reader',
|
||||
password: 'readonly'
|
||||
user: readeruser
|
||||
});
|
||||
|
||||
await page.getByRole('tab', { name: 'Purchasing' }).click();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import type { Page } from '@playwright/test';
|
||||
import { createApi } from '../api';
|
||||
import { test } from '../baseFixtures';
|
||||
import { adminuser } from '../defaults';
|
||||
import { doCachedLogin } from '../login';
|
||||
|
||||
const scan = async (page: Page, barcode: string) => {
|
||||
@@ -65,6 +66,7 @@ test('Barcode Scanning - Part', async ({ browser }) => {
|
||||
|
||||
test('Barcode Scanning - Stockitem', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, { url: 'scan/' });
|
||||
|
||||
await scan(page, '{"stockitem": 408}');
|
||||
|
||||
await page.getByText('1551ABK').waitFor();
|
||||
@@ -87,6 +89,7 @@ test('Barcode Scanning - StockLocation', async ({ browser }) => {
|
||||
|
||||
test('Barcode Scanning - SupplierPart', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, { url: 'scan/' });
|
||||
|
||||
await scan(page, '{"supplierpart": 204}');
|
||||
|
||||
await page.waitForLoadState('networkidle');
|
||||
@@ -96,6 +99,7 @@ test('Barcode Scanning - SupplierPart', async ({ browser }) => {
|
||||
|
||||
test('Barcode Scanning - PurchaseOrder', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, { url: 'scan/' });
|
||||
|
||||
await scan(page, '{"purchaseorder": 12}');
|
||||
|
||||
// purchaseorder: 12
|
||||
@@ -119,6 +123,7 @@ test('Barcode Scanning - SalesOrder', async ({ browser }) => {
|
||||
|
||||
test('Barcode Scanning - Build', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, { url: 'scan/' });
|
||||
|
||||
await scan(page, '{"build": 8}');
|
||||
|
||||
// build: 8
|
||||
@@ -129,8 +134,7 @@ test('Barcode Scanning - Build', async ({ browser }) => {
|
||||
|
||||
test('Barcode Scanning - Forms', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree',
|
||||
user: adminuser,
|
||||
url: '/stock/location/index/stock-items'
|
||||
});
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { expect, test } from '../baseFixtures.js';
|
||||
import { stevenuser } from '../defaults.js';
|
||||
import {
|
||||
clearTableFilters,
|
||||
clickButtonIfVisible,
|
||||
@@ -117,8 +118,7 @@ test('Stock - Location Delete', async ({ browser }) => {
|
||||
|
||||
test('Stock - Filters', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'steven',
|
||||
password: 'wizardstaff',
|
||||
user: stevenuser,
|
||||
url: '/stock/location/index/'
|
||||
});
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import test from '@playwright/test';
|
||||
import { stevenuser } from './defaults';
|
||||
import { globalSearch, loadTab, navigate } from './helpers';
|
||||
import { doCachedLogin } from './login';
|
||||
|
||||
@@ -13,8 +14,7 @@ const openExportDialog = async (page) => {
|
||||
// Test data export for various order types
|
||||
test('Exporting - Orders', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'steven',
|
||||
password: 'wizardstaff',
|
||||
user: stevenuser,
|
||||
url: 'purchasing/index/purchase-orders'
|
||||
});
|
||||
|
||||
@@ -72,8 +72,7 @@ test('Exporting - Orders', async ({ browser }) => {
|
||||
// Test for custom BOM exporter
|
||||
test('Exporting - BOM', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'steven',
|
||||
password: 'wizardstaff'
|
||||
user: stevenuser
|
||||
});
|
||||
|
||||
await globalSearch(page, 'MAST');
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/** Unit tests for form validation, rendering, etc */
|
||||
import test from 'playwright/test';
|
||||
import { stevenuser } from './defaults';
|
||||
import { navigate } from './helpers';
|
||||
import { doCachedLogin } from './login';
|
||||
|
||||
test('Forms - Stock Item Validation', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'steven',
|
||||
password: 'wizardstaff',
|
||||
user: stevenuser,
|
||||
url: 'stock/location/index/stock-items'
|
||||
});
|
||||
|
||||
@@ -82,8 +82,7 @@ test('Forms - Stock Item Validation', async ({ browser }) => {
|
||||
|
||||
test('Forms - Supplier Validation', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'steven',
|
||||
password: 'wizardstaff',
|
||||
user: stevenuser,
|
||||
url: 'purchasing/index/suppliers'
|
||||
});
|
||||
await page.waitForURL('**/purchasing/index/**');
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { test } from './baseFixtures.js';
|
||||
import { adminuser, stevenuser } from './defaults.js';
|
||||
import { globalSearch } from './helpers.js';
|
||||
import { doCachedLogin } from './login.js';
|
||||
|
||||
@@ -7,8 +8,7 @@ import { doCachedLogin } from './login.js';
|
||||
*/
|
||||
test('General - Admin Button', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree',
|
||||
user: adminuser,
|
||||
url: 'company/1/details'
|
||||
});
|
||||
|
||||
@@ -23,8 +23,7 @@ test('General - Admin Button', async ({ browser }) => {
|
||||
// Tests for the global search functionality
|
||||
test('General - Search', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'steven',
|
||||
password: 'wizardstaff'
|
||||
user: stevenuser
|
||||
});
|
||||
|
||||
// Open the search drawer with a shortcut
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import test from '@playwright/test';
|
||||
import { stevenuser } from './defaults';
|
||||
import { doCachedLogin } from './login';
|
||||
|
||||
test('Importing - Admin Center', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'steven',
|
||||
password: 'wizardstaff',
|
||||
user: stevenuser,
|
||||
url: 'settings/admin/import'
|
||||
});
|
||||
|
||||
@@ -72,8 +72,7 @@ test('Importing - Admin Center', async ({ browser }) => {
|
||||
|
||||
test('Importing - BOM', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'steven',
|
||||
password: 'wizardstaff',
|
||||
user: stevenuser,
|
||||
url: 'part/109/bom'
|
||||
});
|
||||
|
||||
@@ -153,8 +152,7 @@ test('Importing - BOM', async ({ browser }) => {
|
||||
|
||||
test('Importing - Purchase Order', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'steven',
|
||||
password: 'wizardstaff',
|
||||
user: stevenuser,
|
||||
url: 'purchasing/purchase-order/15/line-items'
|
||||
});
|
||||
|
||||
@@ -172,8 +170,7 @@ test('Importing - Purchase Order', async ({ browser }) => {
|
||||
|
||||
test('Importing - Natural Keys', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'steven',
|
||||
password: 'wizardstaff',
|
||||
user: stevenuser,
|
||||
url: 'purchasing/purchase-order/15/line-items'
|
||||
});
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { expect, test } from './baseFixtures.js';
|
||||
import { logoutUrl } from './defaults.js';
|
||||
import { logoutUrl, noaccessuser } from './defaults.js';
|
||||
import { navigate } from './helpers.js';
|
||||
import { doLogin } from './login.js';
|
||||
|
||||
@@ -48,8 +48,7 @@ test('Login - Failures', async ({ page }) => {
|
||||
|
||||
test('Login - Change Password', async ({ page }) => {
|
||||
await doLogin(page, {
|
||||
username: 'noaccess',
|
||||
password: 'youshallnotpass'
|
||||
user: noaccessuser
|
||||
});
|
||||
|
||||
// Navigate to the 'change password' page
|
||||
@@ -90,8 +89,7 @@ test('Login - Change Password', async ({ page }) => {
|
||||
// Tests for assigning MFA tokens to users
|
||||
test('Login - MFA - TOTP', async ({ page }) => {
|
||||
await doLogin(page, {
|
||||
username: 'noaccess',
|
||||
password: 'youshallnotpass'
|
||||
user: noaccessuser
|
||||
});
|
||||
|
||||
await navigate(page, 'settings/user/security', { waitUntil: 'networkidle' });
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import test from 'playwright/test';
|
||||
import { adminuser } from './defaults';
|
||||
import { clickOnRowMenu, navigate } from './helpers';
|
||||
import { doCachedLogin } from './login';
|
||||
import { setPluginState } from './settings';
|
||||
|
||||
test('Machines - Admin Panel', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree',
|
||||
user: adminuser,
|
||||
url: 'settings/admin/machine'
|
||||
});
|
||||
|
||||
@@ -20,8 +20,7 @@ test('Machines - Admin Panel', async ({ browser }) => {
|
||||
|
||||
test('Machines - Activation', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree',
|
||||
user: adminuser,
|
||||
url: 'settings/admin/machine'
|
||||
});
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { systemKey, test } from './baseFixtures.js';
|
||||
import { adminuser } from './defaults.js';
|
||||
import { doCachedLogin } from './login.js';
|
||||
import { setPluginState } from './settings.js';
|
||||
|
||||
test('Modals - Admin', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree'
|
||||
user: adminuser
|
||||
});
|
||||
|
||||
// use server info
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
*/
|
||||
|
||||
import test from '@playwright/test';
|
||||
import { adminuser, readeruser } from './defaults';
|
||||
import { clickOnRowMenu, loadTab } from './helpers';
|
||||
import { doCachedLogin } from './login';
|
||||
|
||||
@@ -13,8 +14,7 @@ import { doCachedLogin } from './login';
|
||||
test('Permissions - Admin', async ({ browser }) => {
|
||||
// Login, and start on the "admin" page
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree',
|
||||
user: adminuser,
|
||||
url: '/settings/admin/'
|
||||
});
|
||||
|
||||
@@ -57,8 +57,7 @@ test('Permissions - Admin', async ({ browser }) => {
|
||||
test('Permissions - Reader', async ({ browser }) => {
|
||||
// Login, and start on the "admin" page
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'reader',
|
||||
password: 'readonly',
|
||||
user: readeruser,
|
||||
url: '/part/category/index/'
|
||||
});
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import test from 'playwright/test';
|
||||
|
||||
import { adminuser } from './defaults.js';
|
||||
import {
|
||||
clearTableFilters,
|
||||
clickOnRowMenu,
|
||||
@@ -13,8 +14,7 @@ import { setPluginState, setSettingState } from './settings.js';
|
||||
// Unit test for plugin settings
|
||||
test('Plugins - Settings', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree'
|
||||
user: adminuser
|
||||
});
|
||||
|
||||
// Ensure that the SampleIntegration plugin is enabled
|
||||
@@ -106,8 +106,7 @@ test('Plugins - User Settings', async ({ browser }) => {
|
||||
test('Plugins - Functionality', async ({ browser }) => {
|
||||
// Navigate and select the plugin
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree',
|
||||
user: adminuser,
|
||||
url: 'settings/admin/plugin/'
|
||||
});
|
||||
|
||||
@@ -149,8 +148,7 @@ test('Plugins - Functionality', async ({ browser }) => {
|
||||
|
||||
test('Plugins - Panels', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree'
|
||||
user: adminuser
|
||||
});
|
||||
|
||||
// Ensure that UI plugins are enabled
|
||||
@@ -198,8 +196,7 @@ test('Plugins - Panels', async ({ browser }) => {
|
||||
*/
|
||||
test('Plugins - Custom Admin', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree'
|
||||
user: adminuser
|
||||
});
|
||||
|
||||
// Ensure that the SampleUI plugin is enabled
|
||||
@@ -231,8 +228,7 @@ test('Plugins - Custom Admin', async ({ browser }) => {
|
||||
|
||||
test('Plugins - Locate Item', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree'
|
||||
user: adminuser
|
||||
});
|
||||
|
||||
// Ensure that the sample location plugin is enabled
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { expect, test } from './baseFixtures.js';
|
||||
import { adminuser } from './defaults.js';
|
||||
import { activateTableView, loadTab } from './helpers.js';
|
||||
import { doCachedLogin } from './login.js';
|
||||
import { setPluginState } from './settings.js';
|
||||
@@ -79,8 +80,7 @@ test('Printing - Report Printing', async ({ browser }) => {
|
||||
|
||||
test('Printing - Report Editing', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree'
|
||||
user: adminuser
|
||||
});
|
||||
|
||||
// activate the sample plugin for this test
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { createApi } from './api.js';
|
||||
import { expect, test } from './baseFixtures.js';
|
||||
import { adminuser, allaccessuser, stevenuser } from './defaults.js';
|
||||
import { getRowFromCell, loadTab, navigate } from './helpers.js';
|
||||
import { doCachedLogin } from './login.js';
|
||||
import { setPluginState, setSettingState } from './settings.js';
|
||||
@@ -34,8 +35,7 @@ import { setPluginState, setSettingState } from './settings.js';
|
||||
|
||||
test('Settings - User theme', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'allaccess',
|
||||
password: 'nolimits'
|
||||
user: allaccessuser
|
||||
});
|
||||
|
||||
await page.waitForLoadState('networkidle');
|
||||
@@ -82,8 +82,7 @@ test('Settings - User theme', async ({ browser }) => {
|
||||
|
||||
test('Settings - User', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'allaccess',
|
||||
password: 'nolimits',
|
||||
user: allaccessuser,
|
||||
url: 'settings/user/'
|
||||
});
|
||||
|
||||
@@ -136,8 +135,7 @@ test('Settings - User', async ({ browser }) => {
|
||||
|
||||
test('Settings - Global', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'steven',
|
||||
password: 'wizardstaff',
|
||||
user: stevenuser,
|
||||
url: 'settings/system/'
|
||||
});
|
||||
|
||||
@@ -214,8 +212,7 @@ test('Settings - Global', async ({ browser }) => {
|
||||
test('Settings - Admin', async ({ browser }) => {
|
||||
// Note here we login with admin access
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree'
|
||||
user: adminuser
|
||||
});
|
||||
|
||||
// User settings
|
||||
@@ -320,8 +317,7 @@ test('Settings - Admin', async ({ browser }) => {
|
||||
test('Settings - Admin - Barcode History', async ({ browser }) => {
|
||||
// Login with admin credentials
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree'
|
||||
user: adminuser
|
||||
});
|
||||
|
||||
// Ensure that the "save scans" setting is enabled
|
||||
@@ -375,8 +371,7 @@ test('Settings - Admin - Barcode History', async ({ browser }) => {
|
||||
|
||||
test('Settings - Admin - Parameter', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'admin',
|
||||
password: 'inventree'
|
||||
user: adminuser
|
||||
});
|
||||
await page.getByRole('button', { name: 'admin' }).click();
|
||||
await page.getByRole('menuitem', { name: 'Admin Center' }).click();
|
||||
@@ -483,8 +478,7 @@ test('Settings - Admin - Parameter', async ({ browser }) => {
|
||||
test('Settings - Admin - Unauthorized', async ({ browser }) => {
|
||||
// Try to access "admin" page with a non-staff user
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'allaccess',
|
||||
password: 'nolimits',
|
||||
user: allaccessuser,
|
||||
url: 'settings/admin/'
|
||||
});
|
||||
|
||||
@@ -516,8 +510,7 @@ test('Settings - Admin - Unauthorized', async ({ browser }) => {
|
||||
// Test for user auth configuration
|
||||
test('Settings - Auth - Email', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
username: 'allaccess',
|
||||
password: 'nolimits',
|
||||
user: allaccessuser,
|
||||
url: 'settings/user/'
|
||||
});
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { test } from './baseFixtures.js';
|
||||
import { stevenuser } from './defaults.js';
|
||||
import {
|
||||
clearTableFilters,
|
||||
navigate,
|
||||
@@ -43,8 +44,7 @@ test('Tables - Filters', async ({ browser }) => {
|
||||
test('Tables - Pagination', async ({ browser }) => {
|
||||
const page = await doCachedLogin(browser, {
|
||||
url: 'manufacturing/index/buildorders',
|
||||
username: 'steven',
|
||||
password: 'wizardstaff'
|
||||
user: stevenuser
|
||||
});
|
||||
|
||||
await clearTableFilters(page);
|
||||
@@ -76,8 +76,7 @@ test('Tables - Columns', async ({ browser }) => {
|
||||
// Go to the "stock list" page
|
||||
const page = await doCachedLogin(browser, {
|
||||
url: 'stock/location/index/stock-items',
|
||||
username: 'steven',
|
||||
password: 'wizardstaff'
|
||||
user: stevenuser
|
||||
});
|
||||
|
||||
// Open column selector
|
||||
@@ -104,8 +103,7 @@ test('Tables - Sorting', async ({ browser }) => {
|
||||
// Go to the "stock list" page
|
||||
const page = await doCachedLogin(browser, {
|
||||
url: 'stock/location/index/stock-items',
|
||||
username: 'steven',
|
||||
password: 'wizardstaff'
|
||||
user: stevenuser
|
||||
});
|
||||
|
||||
// Stock table sorting
|
||||
|
||||
Reference in New Issue
Block a user