diff --git a/.project/concepts/e2e-harness/ng-e2e-helpers/usage_polyfill-e2e.md b/.project/concepts/e2e-harness/ng-e2e-helpers/usage_polyfill-e2e.md index 1f1c038..763a576 100644 --- a/.project/concepts/e2e-harness/ng-e2e-helpers/usage_polyfill-e2e.md +++ b/.project/concepts/e2e-harness/ng-e2e-helpers/usage_polyfill-e2e.md @@ -1,7 +1,7 @@ --- type: usage summary: What the polyfill's own end-to-end suites call from ng-e2e-helpers, under which constraints, and where the fit still costs them code -against: ng-e2e-helpers@1.0.0-dev.1 +against: ng-e2e-helpers@1.0.0-dev.2 --- # usage_polyfill-e2e — the polyfill's end-to-end suites @@ -34,7 +34,7 @@ Everything else the package exports is offered and NOT consumed here — the scr ## Constraints -**One Playwright, and the browser types come from the helpers.** These suites import `Frame`, `Page` and `BrowserContext` from `playwright` directly today, which holds only because the package resolves the same copy. The safer form — deriving them from the helpers that return them — is what a consumer in another repository must do, and what this one should adopt. +**The browser types come from the helpers.** `Frame`, `Page` and `BrowserContext` are taken from `ng-e2e-helpers`, which re-exports them, rather than from `playwright` directly — so these suites never depend on resolving the same copy of it, which is the position a consumer in another repository is in anyway. **Every suite mints its own physical wallet, per run.** Nothing is carried between runs and no wallet is reused, so a run's result never depends on a previous one. The batch wallet's NAME is stable and its identity is not: two runs sharing the name share nothing else. diff --git a/packages/polyfill/e2e/notebook.ts b/packages/polyfill/e2e/notebook.ts index 442b1aa..788a3d9 100644 --- a/packages/polyfill/e2e/notebook.ts +++ b/packages/polyfill/e2e/notebook.ts @@ -28,7 +28,6 @@ * can circulate. */ -import { type BrowserContext, type Frame, type Page } from "playwright"; import { execSync } from "node:child_process"; import * as fs from "node:fs"; import * as os from "node:os"; @@ -55,7 +54,10 @@ import { serveOnEphemeralPort, setupBrokerPage, within, + type BrowserContext, + type Frame, type JourneyDeclaration, + type Page, type Prerequisite, type RunProfile, } from "ng-e2e-helpers"; diff --git a/packages/polyfill/e2e/reactivity-doc-subscribe.ts b/packages/polyfill/e2e/reactivity-doc-subscribe.ts index 260a282..fef1f75 100644 --- a/packages/polyfill/e2e/reactivity-doc-subscribe.ts +++ b/packages/polyfill/e2e/reactivity-doc-subscribe.ts @@ -29,8 +29,7 @@ * shared wallet (as faithfulReconnect does) — and writes from it. */ -import type { Frame, Page, BrowserContext } from "playwright"; -import { launchWatchedContext, setupBrokerPage, type RunProfile } from "ng-e2e-helpers"; +import { launchWatchedContext, setupBrokerPage, type RunProfile, type Frame, type Page, type BrowserContext } from "ng-e2e-helpers"; import { WALLET, buildBundle, mintBatchWallet, serveHarness } from "./harness-page"; type Check = { name: string; ok: boolean; detail?: string }; diff --git a/packages/polyfill/e2e/repro-fresh-wallet.ts b/packages/polyfill/e2e/repro-fresh-wallet.ts index 563d078..9484567 100644 --- a/packages/polyfill/e2e/repro-fresh-wallet.ts +++ b/packages/polyfill/e2e/repro-fresh-wallet.ts @@ -21,8 +21,7 @@ * Run: `bun run e2e/repro-fresh-wallet.ts`. */ -import type { Frame, Page, BrowserContext } from "playwright"; -import { mintWalletProfileKeepingContext, setupBrokerPage, type RunProfile } from "ng-e2e-helpers"; +import { mintWalletProfileKeepingContext, setupBrokerPage, type RunProfile, type Frame, type Page, type BrowserContext } from "ng-e2e-helpers"; import { WALLET, buildBundle, serveHarness } from "./harness-page"; type Check = { name: string; ok: boolean; detail?: string }; diff --git a/packages/polyfill/e2e/run.ts b/packages/polyfill/e2e/run.ts index b0ebc8a..8328480 100644 --- a/packages/polyfill/e2e/run.ts +++ b/packages/polyfill/e2e/run.ts @@ -15,7 +15,6 @@ import * as fs from "node:fs"; import * as os from "node:os"; import * as path from "node:path"; -import type { Frame, Page, BrowserContext } from "playwright"; import { armSuiteDeadline, closeContext, @@ -27,6 +26,9 @@ import { setupBrokerPage, within, type RunProfile, + type Frame, + type Page, + type BrowserContext, } from "ng-e2e-helpers"; import { WALLET, buildBundle, mintBatchWallet, serveHarness } from "./harness-page";