@owlmeans/test-ui 0.1.18-rc.14 → 0.1.18-rc.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -58,7 +58,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
58
58
  your project's skill store (`.agents/skills/`):
59
59
 
60
60
  ```sh
61
- npx @owlmeans/agent-skills
61
+ npx @owlmeans/agent-skills@^0.1.18-rc.12
62
62
  ```
63
63
 
64
64
  The embedded files are version-matched to this package release. Do not edit them
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "package": "@owlmeans/test-ui",
4
- "version": "0.1.18-rc.14",
5
- "generatedAt": "2026-09-01T17:39:40.759Z",
4
+ "version": "0.1.18-rc.15",
5
+ "generatedAt": "2026-09-04T22:43:25.435Z",
6
6
  "canonicalRepo": "https://github.com/owlmeans/common",
7
7
  "entries": [
8
8
  {
@@ -1,16 +1,29 @@
1
1
  ---
2
2
  name: testing-ui
3
- description: Category-D component-level acceptance tests for OwlMeans Common UI packages (web-panel, web-client, client-panel, client-wl, web-flow, web-wl, client, client-i18n) and new shadcn UI + Tailwind v4 packages. Run under bun test, drive a real chromium via Playwright as a library — not the Playwright runner. Auto-invoked when writing tests in those packages.
3
+ description: Category-D component-level acceptance tests for OwlMeans Common UI packages (web-panel, web-client, web-consent, web-router, mui-panel, client-panel, client-wl, web-flow, web-wl, client, client-i18n) and shadcn UI + Tailwind v4 packages. Run under bun test, drive a real chromium via Playwright as a library — not the Playwright runner. Auto-invoked when writing tests in those packages.
4
4
  ---
5
5
  <!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
6
6
 
7
7
  # UI Acceptance Tests — Category D (bun test + Playwright as a library)
8
8
 
9
- Category D applies to packages that ship rendered React UI: `client`, `client-i18n`, `client-panel`, `client-wl`, `web-client`, `web-flow`, `web-panel`, `web-wl`. Tests are **component-level acceptance** — they mount one component in a real browser and assert against rendered DOM. They are **not** end-to-end tests (no router-deep navigation, no live backend).
9
+ **Install:** `"@owlmeans/test-ui": "^0.1.18-rc.15"` in `devDependencies`
10
+
11
+ `@owlmeans/test-ui` depends on `playwright`, so the browser library arrives with it; add
12
+ `playwright` to `devDependencies` as well when a spec imports a launcher itself. The Vite harness
13
+ below is the consuming package's own, so a package that builds one also declares `vite` and
14
+ `@vitejs/plugin-react`, plus `@tailwindcss/vite` and `tailwindcss` for a shadcn package. A
15
+ smoke-only package that serves a `data:` URL needs none of those.
16
+
17
+ Category D applies to packages that ship a rendered surface: `client`, `client-i18n`, `client-panel`, `client-wl`, `mui-panel`, `web-client`, `web-consent`, `web-flow`, `web-panel`, `web-router`, `web-wl`. Tests are **component-level acceptance** — they mount one component in a real browser and assert against rendered DOM. They are **not** end-to-end tests (no live backend).
10
18
 
11
19
  The runner is **`bun test`** — same as categories A/B/C — kept consistent so contributors only learn one harness. Playwright is consumed as a **library** (`playwright` package, not `@playwright/test`). The `playwright` library exposes `chromium`, `firefox`, `webkit` browser launchers; specs drive them directly from inside `bun:test` blocks.
12
20
 
13
- Service-only "client-*" packages (`client-flow`, `client-socket`, `web-router`, `web-db`) belong to category A — they have no rendered UI.
21
+ A client-side package that ships no component belongs to category A, however browser-flavoured its
22
+ name — `client-config`, `client-context`, `client-entrypoint`, `client-flow`, `client-job`,
23
+ `client-resource`, `client-route`, `client-socket`, `web-db`, `web-gtm` and
24
+ `web-router-react-router` are all services, models and adapters. `@owlmeans/web-router` is the one
25
+ that is not: it drives the real History API, so its routing behaviour is only observable in a
26
+ browser and its specs mount a full harness here.
14
27
 
15
28
  Auth-related UI packages (`web-oidc-rp`, `web-oidc-provider`, `client-auth`, `client-payment`) belong to category B and use `bun test` + `@owlmeans/test-auth`, not the chromium harness.
16
29
 
@@ -20,9 +33,9 @@ Auth-related UI packages (`web-oidc-rp`, `web-oidc-provider`, `client-auth`, `cl
20
33
  <your-package>/
21
34
  ├── src/...
22
35
  └── tests/
23
- ├── harness/ # per-package: components registry + mount config
36
+ ├── harness/ # per-package: the app the specs drive
24
37
  │ ├── index.html # copy of @owlmeans/test-ui/harness/index.html
25
- │ └── mount.tsx # registers components, reads ?component= and ?props=
38
+ │ └── mount.tsx # boots the package's real surface into #root
26
39
  ├── context.ts # one place that boots the harness server, exports HARNESS_URL
27
40
  └── <area>.spec.ts # *.spec.ts only
28
41
  ```
@@ -42,9 +55,28 @@ Downloads the chromium binary the `playwright` library drives. CI installs it in
42
55
  | `launchBrowser(opts?)` | Return the shared chromium for this `bun test` process. Idempotent. |
43
56
  | `closeBrowser()` | Tear it down. Call from `afterAll`. |
44
57
  | `withPage(fn)` | Lease a fresh context+page for the duration of `fn`, dispose context on completion. |
45
- | `mountComponent({ url, component?, props? })` | Open a fresh context, navigate to the harness URL with `?component=` and `?props=` set, return `{ page, close }`. |
58
+ | `mountComponent(opts)` | Open a fresh context, navigate to `opts.url`, return `Mounted` = `{ page, close }`. `component` and `props`, when given, are appended as `?component=` and `?props=`; omit them when the harness mounts a fixed root, which is what every harness here does. |
59
+ | `MountOptions` | `{ url, component?, props?, waitUntil?, timeout? }` — `waitUntil` defaults to `domcontentloaded`, see below. |
60
+ | `acceptConsent(page, { timeout? })` | Wait up to `timeout` (default 5s) for `[data-consent-dialog]`, accept all, wait for it to detach. Returns whether it answered one — and costs that whole wait when it does not. |
61
+ | `saveScreenshot(page, dir, name)` | Full-page PNG to `<dir>/<name>.png`, creating `dir`. Returns the absolute path. |
46
62
  | Re-exports: `Browser`, `BrowserContext`, `Page`, `Locator` | Playwright types — no direct `playwright` import needed. |
47
63
 
64
+ ### Authenticated specs
65
+
66
+ `@owlmeans/test-ui` also carries the supervisor-login helpers, so a spec can reach a screen that
67
+ sits behind auth without hand-rolling a token:
68
+
69
+ | Helper | Purpose |
70
+ |---|---|
71
+ | `pregenerateAuthToken(opts)` | Mint an `ED25519-BASIC-TOKEN …` bearer offline from a trusted private key — no browser, no round trip. Options: `{ userId, pk, scopes?, role?, entityId?, profileId?, source? }`. |
72
+ | `authenticateViaSupervisorApi(opts)` | Drive the live PK supervisor flow over the backend API (init → sign → authenticate → dispatch), registering the user on first use. Options: `{ apiBaseUrl, userId, pk, paths?, fetchImpl? }`. |
73
+ | `loginViaDispatcher(page, baseUrl, token, opts?)` | Inject a bearer through the standard `/dispatcher?token=…` route and wait for the app to navigate away. |
74
+ | `loginViaSupervisorForm(page, opts)` | Drive the real login form end-to-end — navigate, answer consent, fill user id + key, submit, wait for the landing. Options: `{ baseUrl, userId, pk, path?, expectPath?, timeout?, waitUntil?, consent?, screenshotDir? }`. |
75
+
76
+ These need a project whose backend trusts the private key they sign with, so they belong to specs
77
+ that run against a real app rather than a mounted component. See `[[supervisor-auth]]` for the
78
+ server and web wiring they assume.
79
+
48
80
  ## Spec shape
49
81
 
50
82
  ```ts
@@ -52,25 +84,35 @@ import { afterAll, describe, expect, test } from 'bun:test'
52
84
  import { closeBrowser, mountComponent } from '@owlmeans/test-ui'
53
85
  import { HARNESS_URL } from './context.js'
54
86
 
87
+ // Browser work does not fit bun's 5s default: a cold harness compiles the app on first request,
88
+ // and the first test to run pays for the Vite boot happening in the same process.
89
+ const TIMEOUT = 30_000
90
+
55
91
  afterAll(async () => { await closeBrowser() })
56
92
 
93
+ // The harness is a real app, so a spec picks its case by opening a path on it.
94
+ const open = async (path: string) =>
95
+ mountComponent({ url: `${HARNESS_URL.replace(/\/$/, '')}${path}` })
96
+
57
97
  describe('<package> — <component>', () => {
58
98
  test('renders the SKILL.md happy-path example', async () => {
59
- const { page, close } = await mountComponent({
60
- url: HARNESS_URL,
61
- component: 'LoginForm',
62
- props: { redirect: '/' },
63
- })
99
+ const { page, close } = await open('/login')
64
100
  try {
65
101
  expect(await page.locator('h1').textContent()).toBe('Sign in')
66
102
  expect(await page.getByRole('button', { name: /sign in/i }).isVisible()).toBe(true)
67
103
  } finally {
68
104
  await close()
69
105
  }
70
- })
106
+ }, TIMEOUT)
71
107
  })
72
108
  ```
73
109
 
110
+ **Every chromium test carries its own timeout** — the third argument to `test`. Bun's default is
111
+ 5s, which a cold harness blows through before the first assertion, and `bunfig.toml`'s
112
+ `[test] timeout` does not raise it (bun 1.4.0 reads the section but ignores that key). 30s covers a
113
+ mounted component against a Vite harness; a suite that drives a login form or a consent gate needs
114
+ 60s. `bun test --timeout=<ms>` raises a whole run from the command line.
115
+
74
116
  Use `bun:test`'s `expect` against awaited Playwright DOM queries (`textContent()`, `isVisible()`, `getAttribute()`). Don't import `expect` from `@playwright/test` — that would pull in the full runner and create two parallel test toolchains.
75
117
 
76
118
  ## Per-package `tests/context.ts`
@@ -93,7 +135,12 @@ export const getHarnessUrl = async (): Promise<string> => {
93
135
  configFile: false,
94
136
  root: resolve(here, './harness'),
95
137
  plugins: [react()],
138
+ // Pre-bundle the third-party runtime deps the mounted components pull in. A dependency
139
+ // discovered mid-transform makes Vite re-optimize and reload the page underneath the
140
+ // navigation, and the first `goto` of a cold run pays for that as a timeout.
141
+ optimizeDeps: { include: ['<runtime dep the components import>'] },
96
142
  server: { port: 0 },
143
+ logLevel: 'warn',
97
144
  })
98
145
  await server.listen()
99
146
  const local = server.resolvedUrls?.local?.[0]
@@ -105,7 +152,19 @@ export const getHarnessUrl = async (): Promise<string> => {
105
152
  export const HARNESS_URL = await getHarnessUrl()
106
153
  ```
107
154
 
108
- The per-package `tests/harness/mount.tsx` reads `?component=<name>` and `?props=<json>`, dynamic-imports the component from the consumer's `src/`, and renders it via `react-dom/client` inside `<div id="root">`. Each consuming UI package wires its own providers (MUI theme for legacy packages, or Tailwind CSS + `@` alias for shadcn packages; plus i18n, router) the way the real app does — that's why mount.tsx is per-package, not in `@owlmeans/test-ui`.
155
+ List in `optimizeDeps.include` every non-`@owlmeans` runtime package the components reach — the
156
+ toast library, the icon set, a form library. It is the difference between a cold run that passes
157
+ and one that times out on its first navigation for no visible reason.
158
+
159
+ The per-package `tests/harness/mount.tsx` statically imports what the package ships and renders it
160
+ via `react-dom/client` into the `<div id="root">` that `index.html` provides. It builds a real
161
+ application — `@owlmeans/web-panel` wires a context, the framework entrypoints and a `NavLayout`
162
+ over its screens; `@owlmeans/web-router` compiles a route tree behind the browser router plugin —
163
+ so a spec selects its case by the path it opens rather than by naming a component. A harness that
164
+ needs variants of one surface reads its own query string for them, the way `@owlmeans/web-consent`
165
+ picks a locale, a category set or the policy view. `mountComponent`'s `component` and `props`
166
+ options are the ready-made form of that convention, for a harness written to read them.
167
+ Each consuming UI package wires its own providers (a theme provider for the `mui-*` packages, or Tailwind CSS + the `@` alias for shadcn packages; plus i18n, router) the way the real app does — that's why mount.tsx is per-package, not in `@owlmeans/test-ui`.
109
168
 
110
169
  ## Smoke-only baseline
111
170
 
@@ -124,10 +183,13 @@ describe('chromium smoke', () => {
124
183
  const { page, close } = await mountComponent({ url: harness })
125
184
  try { expect(await page.locator('#t').textContent()).toBe('hello') }
126
185
  finally { await close() }
127
- })
186
+ }, 30_000)
128
187
  })
129
188
  ```
130
189
 
190
+ A smoke spec needs the same explicit timeout as any other: bun runs every spec file of a package
191
+ in one process, so the first test to start pays for whatever harness the sibling files boot.
192
+
131
193
  ## Wiring `bun test`
132
194
 
133
195
  Per-package `package.json`:
@@ -156,7 +218,9 @@ const server = await createServer({
156
218
  alias: { '@': resolve(here, '../src/@') }, // resolve @/ to the package's local copy
157
219
  dedupe: ['react', 'react-dom'], // one React across the workspace links
158
220
  },
221
+ optimizeDeps: { include: ['sonner'] }, // pre-bundle, never discover mid-navigation
159
222
  server: { port: 0 },
223
+ logLevel: 'warn',
160
224
  })
161
225
  ```
162
226
 
@@ -176,7 +240,7 @@ A spec that exercises navigation opens a **path** on the harness origin instead
176
240
  - **Leave the context un-initialized** (`ready` false). The Router compiles the entrypoint tree into routes only while the context is un-initialized; a pre-readied context renders a blank page.
177
241
  - **Give every entrypoint that has children one child declared `default: true`**, or the parent's own path renders blank.
178
242
 
179
- Include the framework's own `modules` in the harness entrypoint list: the panel context registers the api-config middleware, which resolves one of them during init and throws before any route is compiled if they are missing.
243
+ Spread the framework's own `entrypoints` (exported by the panel package) into the harness list: the panel context registers the api-config middleware, which resolves one of them during init and throws before any route is compiled if they are missing.
180
244
 
181
245
  Shadcn components are plain React — no theme provider needed. Assert via `getByRole` / text as usual. To verify that Tailwind classes took visual effect, read computed styles:
182
246
 
@@ -194,6 +258,9 @@ See `[[shadcn-web]]` for the full `@` alias contract and `tests/context.ts` patt
194
258
  - **No mocks.** Render the real component with real client-context wiring (state, i18n, router) the way the app does. For network calls, use Playwright's `page.route(...)` to a static fixture — never point at a live backend.
195
259
  - **Cover SKILL.md and README.md cases first.** Each component the package documents gets at least one acceptance spec for its happy path.
196
260
  - **Max 3-4 tests per component**: render, primary interaction, one edge case.
261
+ - **Always pass a timeout as `test`'s third argument.** 30s for a mounted component, 60s for a
262
+ suite that drives a login or a consent gate. Bun's 5s default is for in-process work, and
263
+ `bunfig.toml`'s `[test] timeout` is not a way to change it.
197
264
  - **Always `close()` the page and `closeBrowser()` in `afterAll`.** A leaked context blocks the bun process from exiting.
198
265
  - **Chromium only by default.** Add `firefox` or `webkit` per package only when the feature has documented cross-browser concerns — call `chromium.launch` / `firefox.launch` explicitly in that case.
199
266
 
@@ -209,10 +276,15 @@ looking at the server.
209
276
  selector it actually needs. That wait IS the assertion; the load event never was. Pass
210
277
  `waitUntil` explicitly for the rare case that wants otherwise.
211
278
 
212
- The rule is not `mountComponent`'s alone — **every** navigation helper here follows it, and
213
- `loginViaSupervisorForm` / `loginViaDispatcher` are the ones that bit: they kept playwright's
214
- default long after `mountComponent` was fixed, so adding a tag manager to an app broke its whole
215
- login-driven suite while the browser showed a working login form.
279
+ The rule is not `mountComponent`'s alone — **every** navigation helper here follows it, including
280
+ `loginViaSupervisorForm` and `loginViaDispatcher`. A helper that navigates on playwright's default
281
+ turns "someone added a tag manager" into "the whole login-driven suite times out", with the browser
282
+ showing a working login form the entire time. Any new helper that calls `page.goto` passes
283
+ `domcontentloaded` and takes a `waitUntil` override.
284
+
285
+ `saveScreenshot(page, dir, name)` is the fastest way to see what the browser actually had on
286
+ screen when an assertion timed out; `loginViaSupervisorForm` takes a `screenshotDir` that captures
287
+ the filled form just before submit.
216
288
 
217
289
  ## The consent dialog blocks the login form, and the failure blames the button
218
290
 
@@ -225,8 +297,15 @@ button. Nothing is wrong with the button; read the `subtree intercepts pointer e
225
297
  names `[data-consent-dialog]`.
226
298
 
227
299
  `loginViaSupervisorForm` therefore calls `acceptConsent(page)` after navigating. `acceptConsent` is
228
- exported for specs that drive their own login: it clicks `[data-consent-accept-all]`, waits for the
229
- dialog to detach, and returns `false` at once when there is no dialog, so an app without the widget
230
- is unaffected. It accepts **all** categories deliberately — a spec asserting a narrower decision
231
- must make that decision itself rather than inherit a silent minimum. Pass `consent: 'ignore'` to
232
- answer the dialog in the spec instead.
300
+ exported for specs that drive their own login: it waits for `[data-consent-dialog]` to become
301
+ visible, clicks `[data-consent-accept-all]`, waits for the dialog to detach, and reports whether it
302
+ answered one. It accepts **all** categories deliberately — a spec asserting a narrower decision must
303
+ make that decision itself rather than inherit a silent minimum.
304
+
305
+ **The `false` return costs the full wait.** It is what the visibility wait rejects into, not a cheap
306
+ probe, so a page with no dialog pays the timeout — 5s by `acceptConsent`'s own default, but
307
+ `loginViaSupervisorForm` passes its `timeout` straight through and that defaults to `60_000`. On an
308
+ app that ships no consent widget the login helper therefore sits for a full minute before it fills
309
+ the first field, with nothing on screen to explain it. Drive such an app with `consent: 'ignore'`,
310
+ which skips the call entirely; that is also the switch a spec flips when it wants to answer the
311
+ dialog itself.
@@ -15,5 +15,5 @@ export declare const closeBrowser: () => Promise<void>;
15
15
  * context + page, and closes the context on completion. The browser
16
16
  * itself stays alive across calls so multiple specs share it cheaply.
17
17
  */
18
- export declare const withPage: <T>(fn: (page: import("playwright").Page) => Promise<T>) => Promise<T>;
18
+ export declare const withPage: <T>(fn: (page: import('playwright').Page) => Promise<T>) => Promise<T>;
19
19
  //# sourceMappingURL=browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAKxD;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAU,OAAM,aAAkB,KAAG,OAAO,CAAC,OAAO,CAO7E,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,IAAI,CAOjD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAU,CAAC,EAC9B,IAAI,CAAC,IAAI,EAAE,OAAO,YAAY,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAClD,OAAO,CAAC,CAAC,CASX,CAAA"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAKxD;;;;GAIG;AACH,eAAO,MAAM,aAAa,UAAgB,aAAa,KAAQ,OAAO,CAAC,OAAO,CAO7E,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,IAAI,CAOjD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAU,CAAC,MAC1B,CAAC,IAAI,EAAE,OAAO,YAAY,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAClD,OAAO,CAAC,CAAC,CASX,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,IAAI,MAA2B,CAAA;AAC/B,IAAI,QAAsC,CAAA;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,OAAsB,EAAE,EAAoB,EAAE;IAChF,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,MAAM,CAAA;IACjC,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAA;IACrC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IACvD,MAAM,GAAG,MAAM,QAAQ,CAAA;IACvB,QAAQ,GAAG,SAAS,CAAA;IACpB,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;IACpD,MAAM,CAAC,GAAG,MAAM,CAAA;IAChB,MAAM,GAAG,SAAS,CAAA;IAClB,QAAQ,GAAG,SAAS,CAAA;IACpB,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACd,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,EAAmD,EACvC,EAAE;IACd,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAA;IACrC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;IAC1C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;IACpC,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,IAAI,MAA2B,CAAA;AAC/B,IAAI,QAAsC,CAAA;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,IAAI,GAAkB,EAAE,EAAoB,EAAE;IAChF,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,MAAM,CAAA;IACjC,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAA;IACrC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IACvD,MAAM,GAAG,MAAM,QAAQ,CAAA;IACvB,QAAQ,GAAG,SAAS,CAAA;IACpB,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;IACpD,MAAM,CAAC,GAAG,MAAM,CAAA;IAChB,MAAM,GAAG,SAAS,CAAA;IAClB,QAAQ,GAAG,SAAS,CAAA;IACpB,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACd,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,EAAmD,EACvC,EAAE;IACd,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAA;IACrC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;IAC1C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;IACpC,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGtC,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,kBAAkB,GAAG,MAAM,GAAG,aAAa,CAAA;IAClE,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,IAAI,CAAA;IACV,0EAA0E;IAC1E,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAYD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,GAAU,MAAM,YAAY,KAAG,OAAO,CAAC,OAAO,CAYxE,CAAA"}
1
+ {"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGtC,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,kBAAkB,GAAG,MAAM,GAAG,aAAa,CAAA;IAClE,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,IAAI,CAAA;IACV,0EAA0E;IAC1E,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAYD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,SAAgB,YAAY,KAAG,OAAO,CAAC,OAAO,CAYxE,CAAA"}
@@ -34,7 +34,7 @@ export declare const pregenerateAuthToken: (opts: PregenerateAuthTokenOptions) =
34
34
  */
35
35
  export declare const loginViaDispatcher: (page: Page, baseUrl: string, token: string, opts?: {
36
36
  dispatcherPath?: string;
37
- waitUntil?: "commit" | "domcontentloaded" | "load" | "networkidle";
37
+ waitUntil?: 'commit' | 'domcontentloaded' | 'load' | 'networkidle';
38
38
  }) => Promise<void>;
39
39
  export interface SupervisorApiAuthOptions {
40
40
  /** Auth-manager API base URL (the backend serving /authentication/* and /authenticate). */
@@ -1 +1 @@
1
- {"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../src/supervisor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,EAAyB,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AASrE,MAAM,WAAW,2BAA2B;IAC1C,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAAU,MAAM,2BAA2B,KAAG,OAAO,CAAC,MAAM,CAe5F,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,IAAI,EAAE,SAAS,MAAM,EAAE,OAAO,MAAM,EAC1C,OAAO;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,kBAAkB,GAAG,MAAM,GAAG,aAAa,CAAA;CAAE,KACrG,OAAO,CAAC,IAAI,CAQd,CAAA;AAED,MAAM,WAAW,wBAAwB;IACvC,2FAA2F;IAC3F,UAAU,EAAE,MAAM,CAAA;IAClB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,+EAA+E;IAC/E,EAAE,EAAE,MAAM,CAAA;IACV,kDAAkD;IAClD,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACnE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAgBD;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,GACvC,MAAM,wBAAwB,KAC7B,OAAO,CAAC,MAAM,CAkChB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAU,MAAM,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,CAM1F,CAAA;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAA;IACV,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kGAAkG;IAClG,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,kBAAkB,GAAG,MAAM,GAAG,aAAa,CAAA;IAClE;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC7B,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAID;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,GACxB,MAAM,IAAI,EAAE,OAAO;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KACtC,OAAO,CAAC,OAAO,CAajB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,IAAI,EAAE,MAAM,0BAA0B,KAC3C,OAAO,CAAC,IAAI,CAiCd,CAAA"}
1
+ {"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../src/supervisor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,EAAyB,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AASrE,MAAM,WAAW,2BAA2B;IAC1C,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,SAAgB,2BAA2B,KAAG,OAAO,CAAC,MAAM,CAe5F,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,SACvB,IAAI,WAAW,MAAM,SAAS,MAAM,SACnC;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,kBAAkB,GAAG,MAAM,GAAG,aAAa,CAAA;CAAE,KACrG,OAAO,CAAC,IAAI,CAQd,CAAA;AAED,MAAM,WAAW,wBAAwB;IACvC,2FAA2F;IAC3F,UAAU,EAAE,MAAM,CAAA;IAClB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,+EAA+E;IAC/E,EAAE,EAAE,MAAM,CAAA;IACV,kDAAkD;IAClD,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACnE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAgBD;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,SACjC,wBAAwB,KAC7B,OAAO,CAAC,MAAM,CAkChB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,SAAgB,IAAI,OAAO,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAM1F,CAAA;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAA;IACV,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kGAAkG;IAClG,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,kBAAkB,GAAG,MAAM,GAAG,aAAa,CAAA;IAClE;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC7B,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAID;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,SAClB,IAAI,SAAS;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KACtC,OAAO,CAAC,OAAO,CAajB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,SAC3B,IAAI,QAAQ,0BAA0B,KAC3C,OAAO,CAAC,IAAI,CAiCd,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owlmeans/test-ui",
3
- "version": "0.1.18-rc.14",
3
+ "version": "0.1.18-rc.15",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -22,12 +22,12 @@
22
22
  "./harness": "./harness/index.html"
23
23
  },
24
24
  "dependencies": {
25
- "@owlmeans/auth": "^0.1.18-rc.8",
26
- "@owlmeans/basic-envelope": "^0.1.18-rc.11",
27
- "@owlmeans/basic-ids": "^0.1.18-rc.8",
28
- "@owlmeans/basic-keys": "^0.1.18-rc.11",
29
- "@owlmeans/test": "^0.1.18-rc.7",
30
- "@owlmeans/test-auth": "^0.1.18-rc.12",
25
+ "@owlmeans/auth": "^0.1.18-rc.9",
26
+ "@owlmeans/basic-envelope": "^0.1.18-rc.12",
27
+ "@owlmeans/basic-ids": "^0.1.18-rc.9",
28
+ "@owlmeans/basic-keys": "^0.1.18-rc.12",
29
+ "@owlmeans/test": "^0.1.18-rc.8",
30
+ "@owlmeans/test-auth": "^0.1.18-rc.13",
31
31
  "playwright": "^1.61.1"
32
32
  },
33
33
  "peerDependencies": {