29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
import {
|
|
Given,
|
|
When,
|
|
Then,
|
|
Before,
|
|
After,
|
|
defineParameterType,
|
|
setDefaultTimeout,
|
|
} from '@cucumber/cucumber'
|
|
import { registerBrowserSteps, registerBrowserHooks } from '@pikku/cucumber/browser'
|
|
|
|
// The shared browser vocabulary ({actor} grammar, form/click/see steps, the
|
|
// "every page loads without errors" sweep) and the browser lifecycle hooks.
|
|
// Per-domain business steps belong in ../steps/*.steps.ts.
|
|
registerBrowserSteps({ Given, When, Then, defineParameterType })
|
|
registerBrowserHooks({ Before, After, setDefaultTimeout })
|
|
|
|
// The page-load sweep visits every route in one step, so give scenarios plenty
|
|
// of room. Per-action waits are still bounded by the package's config.timeout.
|
|
setDefaultTimeout(Number(process.env.E2E_SCENARIO_TIMEOUT ?? 300_000))
|
|
|
|
// Don't start a scenario while the dev server is mid-restart (it 5xx's /api
|
|
// for a few seconds on boot / file change) — that race reads as a phantom
|
|
// failure. Server orchestration itself stays outside these tests.
|
|
Before(async function (this: import('./world.js').AppWorld) {
|
|
const actor = await this.actor(undefined)
|
|
await actor.waitForServerReady()
|
|
})
|