Variable: test
consttest:MergedTestType<[TestType<PlaywrightTestArgs&PlaywrightTestOptions&TestFixtures&ModuleFixtures,PlaywrightWorkerArgs&PlaywrightWorkerOptions&WorkerFixtures>,TestType<PlaywrightTestArgs&PlaywrightTestOptions&AuthFixtures&AuthFixtureOptions,PlaywrightWorkerArgs&PlaywrightWorkerOptions&AuthDeps>,TestType<PlaywrightTestArgs&PlaywrightTestOptions&NavFixtures,PlaywrightWorkerArgs&PlaywrightWorkerOptions&NavWorkerDeps>]>
Unified Playwright test object with all Praman fixtures.
Remarks
Combines moduleTest (config, logger, ui5 + table/dialog/date/odata), authTest (sapAuth), navTest (ui5Navigation, btpWorkZone), stabilityTest (auto-wait, request interception), and feTest (fe).
Fixture override precedence in mergeTests():
When multiple modules declare the same fixture name, Playwright resolves them using last-writer-wins semantics — the last module in the argument list that provides a real (non-placeholder) implementation wins.
Overlapping fixtures and their resolution:
-
pramanConfig/rootLogger— real impl incoreTest(pulled in transitively viamoduleTest); 7 other modules declare placeholders (option: true) that are satisfied by the real provider. -
ui5— base impl incoreTest, overridden bymoduleTest(adds.table,.dialog,.date,.odatasub-namespaces).intentTestdeclares a placeholder that resolves tomoduleTest's enriched version.moduleTestmust appear beforeintentTest. -
All remaining fixture names (
sapAuth,fe,intent,flpLocks, etc.) are unique to their respective modules — no precedence concern.
Example
import { test } from 'playwright-praman';
test('table and FE ops', async ({ ui5, ui5Navigation, fe }) => {
await ui5Navigation.navigateToApp('PurchaseOrder-manage');
await ui5.table.getRows('myTable');
await fe.listReport.search();
});