chore: starter template
This commit is contained in:
28
e2e/tests/support/register.ts
Normal file
28
e2e/tests/support/register.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
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()
|
||||
})
|
||||
15
e2e/tests/support/world.ts
Normal file
15
e2e/tests/support/world.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { setWorldConstructor } from '@cucumber/cucumber'
|
||||
import { BrowserWorld } from '@pikku/cucumber/browser'
|
||||
|
||||
/**
|
||||
* AppWorld — the app's cucumber world, built on @pikku/cucumber/browser.
|
||||
*
|
||||
* The package owns the browser lifecycle, the actor grammar ("the user",
|
||||
* "the admin", they) and the generic step vocabulary. Extend this class for
|
||||
* app-specific needs: override createClients() to expose the generated
|
||||
* PikkuRPC/PikkuFetch on actors, override resetAppData() to call the app's
|
||||
* reset RPC, or add helpers for per-domain *.steps.ts files.
|
||||
*/
|
||||
export class AppWorld extends BrowserWorld {}
|
||||
|
||||
setWorldConstructor(AppWorld)
|
||||
Reference in New Issue
Block a user