Files
Sylvain Duchesne 1c475d8c9f test(client): real-broker e2e harness for the SDK (own domain, dedicated wallet)
The polyfill had only fake-ng unit tests; real-broker behaviour (SPARQL graph
round-trip, doc_subscribe marshaling, inbox/index) was only ever exercised by
borrowing Festipod's harness. Add packages/client/e2e/ — a standalone Playwright
harness in the SDK's own domain: a minimal SDK page (configure() + the real
@ng-org/web ng, a window.__sdk bridge, zero Festipod domain) loaded in the broker
iframe on the real broker, authenticating with a DEDICATED wallet (name
ng-eventually-e2e, profile e2e/.playwright-profile-lib — gitignored, separate from
Festipod's). Runner: bun run e2e/run.ts (script test:e2e); not mixed into bun test.

Covers, against the real broker (23 checks, all green): docCreate; sparqlUpdate/
Query anchored default-graph round-trip; readUnion N-doc + per-doc tolerance + cap
gate; doc_subscribe initial+write+unsub and subscribeDocs per-doc isolation; inbox
post/read/watch + spoof guard; discovery submit/read/watchIndex + reserved-account
isolation; store-registry idempotency + bounded listMyEntityDocs + scope resolvers;
caps read-filter (in-memory, honestly scoped); IdentityStore.

Finding (reported, not a failure): on @ng-org/web 0.1.2-alpha.13 an anchored
INSERT DATA { GRAPH <plainNuri> {…} } DOES round-trip (no phantom graph) — several
lib comments assert the opposite; stale, to reconcile. Behaviour is unaffected (the
lib writes the always-safe no-GRAPH default-graph shape). bun test still 91 pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 23:55:07 +02:00

34 lines
965 B
JSON

{
"name": "@ng-eventually/client",
"version": "0.0.0",
"type": "module",
"description": "SDK-identical client wrapper over @ng-org/web + @ng-org/orm with emulated capabilities and inbox. Drop-in; remove at migration.",
"main": "./src/index.ts",
"types": "./src/index.ts",
"exports": {
".": "./src/index.ts",
"./polyfill": "./src/polyfill.ts"
},
"peerDependencies": {
"@ng-org/web": "*",
"@ng-org/orm": "*",
"@ng-org/shex-orm": "*",
"@ng-org/alien-deepsignals": "*"
},
"peerDependenciesMeta": {
"@ng-org/web": { "optional": true },
"@ng-org/orm": { "optional": true },
"@ng-org/shex-orm": { "optional": true },
"@ng-org/alien-deepsignals": { "optional": true }
},
"devDependencies": {
"@ng-org/web": "0.1.2-alpha.13",
"@ng-org/shex-orm": "0.1.2-alpha.8",
"@ng-org/alien-deepsignals": "0.1.2-alpha.11"
},
"scripts": {
"test": "bun test",
"test:e2e": "bun run e2e/run.ts"
}
}