@fuzdev/fuz_app 0.86.0 → 0.88.0
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/dist/actions/action_rpc.js +1 -1
- package/dist/actions/register_action_ws.js +1 -1
- package/dist/auth/CLAUDE.md +15 -0
- package/dist/auth/account_actions.js +1 -1
- package/dist/auth/account_route_schema.d.ts +146 -0
- package/dist/auth/account_route_schema.d.ts.map +1 -0
- package/dist/auth/account_route_schema.js +141 -0
- package/dist/auth/account_routes.d.ts +0 -79
- package/dist/auth/account_routes.d.ts.map +1 -1
- package/dist/auth/account_routes.js +15 -110
- package/dist/auth/audit_log_route_schema.d.ts +32 -0
- package/dist/auth/audit_log_route_schema.d.ts.map +1 -0
- package/dist/auth/audit_log_route_schema.js +36 -0
- package/dist/auth/audit_log_routes.d.ts.map +1 -1
- package/dist/auth/audit_log_routes.js +2 -12
- package/dist/auth/bearer_auth.js +1 -1
- package/dist/auth/bootstrap_route_schema.d.ts +85 -0
- package/dist/auth/bootstrap_route_schema.d.ts.map +1 -0
- package/dist/auth/bootstrap_route_schema.js +56 -0
- package/dist/auth/bootstrap_routes.d.ts +0 -20
- package/dist/auth/bootstrap_routes.d.ts.map +1 -1
- package/dist/auth/bootstrap_routes.js +4 -35
- package/dist/auth/signup_route_schema.d.ts +53 -0
- package/dist/auth/signup_route_schema.d.ts.map +1 -0
- package/dist/auth/signup_route_schema.js +59 -0
- package/dist/auth/signup_routes.d.ts +0 -26
- package/dist/auth/signup_routes.d.ts.map +1 -1
- package/dist/auth/signup_routes.js +8 -40
- package/dist/http/CLAUDE.md +2 -1
- package/dist/http/client_ip.d.ts +15 -0
- package/dist/http/client_ip.d.ts.map +1 -0
- package/dist/http/client_ip.js +13 -0
- package/dist/http/proxy.d.ts +0 -7
- package/dist/http/proxy.d.ts.map +1 -1
- package/dist/http/proxy.js +0 -7
- package/dist/realtime/sse.d.ts +0 -2
- package/dist/realtime/sse.d.ts.map +1 -1
- package/dist/realtime/sse.js +1 -2
- package/dist/realtime/sse_constants.d.ts +17 -0
- package/dist/realtime/sse_constants.d.ts.map +1 -0
- package/dist/realtime/sse_constants.js +16 -0
- package/dist/testing/CLAUDE.md +6 -3
- package/dist/testing/admin_integration.d.ts.map +1 -1
- package/dist/testing/admin_integration.js +1 -1
- package/dist/testing/app_server.d.ts +0 -15
- package/dist/testing/app_server.d.ts.map +1 -1
- package/dist/testing/app_server.js +1 -15
- package/dist/testing/audit_completeness.d.ts.map +1 -1
- package/dist/testing/audit_completeness.js +1 -1
- package/dist/testing/cross_backend/account_lifecycle.d.ts +5 -5
- package/dist/testing/cross_backend/account_lifecycle.d.ts.map +1 -1
- package/dist/testing/cross_backend/account_lifecycle.js +1 -1
- package/dist/testing/cross_backend/actor_lookup.d.ts +5 -5
- package/dist/testing/cross_backend/actor_lookup.d.ts.map +1 -1
- package/dist/testing/cross_backend/actor_search.d.ts +3 -3
- package/dist/testing/cross_backend/actor_search.d.ts.map +1 -1
- package/dist/testing/cross_backend/app_settings.d.ts +3 -3
- package/dist/testing/cross_backend/app_settings.d.ts.map +1 -1
- package/dist/testing/cross_backend/body_size.d.ts +10 -0
- package/dist/testing/cross_backend/body_size.d.ts.map +1 -0
- package/dist/testing/cross_backend/body_size.js +137 -0
- package/dist/testing/cross_backend/body_size_smuggling.d.ts +10 -0
- package/dist/testing/cross_backend/body_size_smuggling.d.ts.map +1 -0
- package/dist/testing/cross_backend/body_size_smuggling.js +138 -0
- package/dist/testing/cross_backend/cell_cross_helpers.d.ts +0 -11
- package/dist/testing/cross_backend/cell_cross_helpers.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_crud.d.ts +2 -2
- package/dist/testing/cross_backend/cell_crud.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_crud.js +1 -1
- package/dist/testing/cross_backend/cell_grant_role.d.ts +2 -2
- package/dist/testing/cross_backend/cell_grant_role.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_grant_role.js +1 -1
- package/dist/testing/cross_backend/cell_relations.d.ts +2 -2
- package/dist/testing/cross_backend/cell_relations.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_relations.js +1 -1
- package/dist/testing/cross_backend/conformance_table.d.ts.map +1 -1
- package/dist/testing/cross_backend/conformance_table.js +8 -6
- package/dist/testing/cross_backend/fact_serving.d.ts +2 -3
- package/dist/testing/cross_backend/fact_serving.d.ts.map +1 -1
- package/dist/testing/cross_backend/in_process_setup.d.ts +143 -0
- package/dist/testing/cross_backend/in_process_setup.d.ts.map +1 -0
- package/dist/testing/cross_backend/in_process_setup.js +166 -0
- package/dist/testing/cross_backend/origin.d.ts +5 -5
- package/dist/testing/cross_backend/origin.d.ts.map +1 -1
- package/dist/testing/cross_backend/ready.d.ts +2 -7
- package/dist/testing/cross_backend/ready.d.ts.map +1 -1
- package/dist/testing/cross_backend/setup.d.ts +54 -135
- package/dist/testing/cross_backend/setup.d.ts.map +1 -1
- package/dist/testing/cross_backend/setup.js +11 -171
- package/dist/testing/cross_backend/sse_round_trip.js +1 -1
- package/dist/testing/cross_backend/testing_backdoor.d.ts +2 -2
- package/dist/testing/cross_backend/testing_backdoor.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_reset_actions.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_reset_actions.js +2 -1
- package/dist/testing/integration.js +2 -2
- package/dist/testing/middleware.d.ts.map +1 -1
- package/dist/testing/middleware.js +2 -1
- package/dist/testing/sse_round_trip.d.ts +1 -1
- package/dist/testing/sse_round_trip.d.ts.map +1 -1
- package/dist/testing/sse_round_trip.js +1 -1
- package/dist/testing/stubs.d.ts.map +1 -1
- package/dist/testing/stubs.js +7 -9
- package/dist/testing/test_credentials.d.ts +23 -0
- package/dist/testing/test_credentials.d.ts.map +1 -0
- package/dist/testing/test_credentials.js +22 -0
- package/package.json +2 -2
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import '../assert_dev_env.js';
|
|
2
|
-
import {
|
|
3
|
-
import type { SetupTest } from './setup.js';
|
|
2
|
+
import type { CrossSuiteOptions } from './setup.js';
|
|
4
3
|
/** Options for the readiness-probe parity suite. */
|
|
5
|
-
export interface ReadyCrossTestOptions {
|
|
6
|
-
/** Per-test fixture-producing function (fresh keeper + db per call). */
|
|
7
|
-
readonly setup_test: SetupTest;
|
|
8
|
-
/** Backend capability declarations — the suite gates on `capabilities.ready`. */
|
|
9
|
-
readonly capabilities: BackendCapabilities;
|
|
4
|
+
export interface ReadyCrossTestOptions extends CrossSuiteOptions {
|
|
10
5
|
/** Readiness probe path. Default `/ready`. */
|
|
11
6
|
readonly ready_path?: string;
|
|
12
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ready.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/ready.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ready.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/ready.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAkC9B,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAElD,oDAAoD;AACpD,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC/D,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,0BAA0B,GAAI,SAAS,qBAAqB,KAAG,IAuB3E,CAAC"}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import '../assert_dev_env.js';
|
|
2
2
|
import { Uuid } from '@fuzdev/fuz_util/id.js';
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import type { AppServerContext } from '../../server/app_server_context.js';
|
|
6
|
-
import type { SessionOptions } from '../../auth/session_cookie.js';
|
|
7
|
-
import { type CreateTestAppOptions, type SuiteAppOptions, type TestAccount } from '../app_server.js';
|
|
8
|
-
import { type RpcEndpointsSuiteOption } from '../rpc_helpers.js';
|
|
9
|
-
import { type BackendCapabilities } from './capabilities.js';
|
|
10
|
-
import type { AppSurfaceSpec } from '../../http/surface.js';
|
|
3
|
+
import type { TestAccount } from '../app_server.js';
|
|
4
|
+
import type { BackendCapabilities } from './capabilities.js';
|
|
11
5
|
import { type FetchTransport } from '../transports/fetch_transport.js';
|
|
12
6
|
import type { SchemaSnapshot } from '../schema_introspect.js';
|
|
13
7
|
import type { BackendHandle } from './spawn_backend.js';
|
|
@@ -62,6 +56,28 @@ export interface ExtraAccountFixture {
|
|
|
62
56
|
readonly create_session_headers: (extra?: Record<string, string>) => Record<string, string>;
|
|
63
57
|
readonly create_bearer_headers: (extra?: Record<string, string>) => Record<string, string>;
|
|
64
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Build an `ExtraAccountFixture` from a seeded `{account, actor,
|
|
61
|
+
* api_token, session_cookie}` bundle and the session cookie name.
|
|
62
|
+
*
|
|
63
|
+
* Same shape produced by either path that seeds bootstrap-time
|
|
64
|
+
* secondaries: in-process via `create_test_account_with_credentials`
|
|
65
|
+
* against the live backend's DB, or cross-process via the
|
|
66
|
+
* `_testing_reset` RPC's `extra_accounts` output. Both call this
|
|
67
|
+
* helper so the fixture-side header builders + field plumbing stays
|
|
68
|
+
* in one place.
|
|
69
|
+
*/
|
|
70
|
+
export declare const build_extra_account_fixture: (seeded: {
|
|
71
|
+
account: {
|
|
72
|
+
id: Uuid;
|
|
73
|
+
username: string;
|
|
74
|
+
};
|
|
75
|
+
actor: {
|
|
76
|
+
id: Uuid;
|
|
77
|
+
};
|
|
78
|
+
api_token: string;
|
|
79
|
+
session_cookie: string;
|
|
80
|
+
}, cookie_name: string) => ExtraAccountFixture;
|
|
65
81
|
/**
|
|
66
82
|
* Fields shared by every `TestFixture` regardless of transport. The
|
|
67
83
|
* discriminated union below adds in-process-only fields conditionally.
|
|
@@ -188,47 +204,33 @@ export type TestFixture = TestFixtureBase;
|
|
|
188
204
|
*/
|
|
189
205
|
export type SetupTest = () => Promise<TestFixture>;
|
|
190
206
|
/**
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
207
|
+
* Base options shared by every imperative cross-backend parity suite
|
|
208
|
+
* (`origin` / `ready` / `body_size` / `cell_*` / `actor_*` /
|
|
209
|
+
* `account_lifecycle` / `app_settings` / `testing_backdoor` / …). The
|
|
210
|
+
* `{setup_test, capabilities}` core is identical across them; each suite
|
|
211
|
+
* extends this with its own path field (`rpc_path` for RPC-dispatched
|
|
212
|
+
* suites via `RpcPathCrossSuiteOptions`, `ready_path` for the readiness
|
|
213
|
+
* probe, etc.). Lives here in the neutral fixture-types home rather than in
|
|
214
|
+
* any one domain helper, so a non-cell suite no longer reaches into the
|
|
215
|
+
* cell helpers for its option shape.
|
|
195
216
|
*/
|
|
196
|
-
export interface
|
|
197
|
-
/**
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
* `describe_standard_admin_integration_tests`) is the primary user.
|
|
202
|
-
*/
|
|
203
|
-
readonly extra_accounts?: ReadonlyArray<ExtraAccountSpec>;
|
|
204
|
-
/**
|
|
205
|
-
* Additional actor names to seed on the bootstrapped keeper — exposed on
|
|
206
|
-
* `fixture.extra_actors`. See `CrossProcessSetupOptions.extra_actors` /
|
|
207
|
-
* `TestFixtureBase.extra_actors`. Seeded directly against the live backend
|
|
208
|
-
* DB (in-process has no wire hop).
|
|
209
|
-
*/
|
|
210
|
-
readonly extra_actors?: ReadonlyArray<string>;
|
|
217
|
+
export interface CrossSuiteOptions {
|
|
218
|
+
/** Per-test fixture-producing function (fresh keeper + db per call). */
|
|
219
|
+
readonly setup_test: SetupTest;
|
|
220
|
+
/** Backend capability declarations — each suite gates on its own flag. */
|
|
221
|
+
readonly capabilities: BackendCapabilities;
|
|
211
222
|
}
|
|
212
223
|
/**
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
*
|
|
217
|
-
*
|
|
218
|
-
* and consumer suites pass `default_in_process_setup({...factory_inputs})`
|
|
219
|
-
* in place of the old per-suite factory-input bundle. The `extra_accounts`
|
|
220
|
-
* slot (see `InProcessSetupOptions`) seeds bootstrap-time secondaries
|
|
221
|
-
* directly via `create_test_account_with_credentials` against the same
|
|
222
|
-
* DB the keeper just landed on — mirrors the cross-process
|
|
223
|
-
* `_testing_reset` cradle so suite bodies read
|
|
224
|
-
* `fixture.extra_accounts[username]` uniformly regardless of transport.
|
|
225
|
-
*
|
|
226
|
-
* The describe-level `auth_integration_truncate_tables` / pglite WASM
|
|
227
|
-
* cache lifecycle stays in `create_pglite_factory` / `create_describe_db`
|
|
228
|
-
* (`testing/db.ts`) — `default_in_process_setup` doesn't manage db state
|
|
229
|
-
* beyond what `create_test_app` already does.
|
|
224
|
+
* `CrossSuiteOptions` plus the RPC endpoint path the suite dispatches
|
|
225
|
+
* against — the shape every JSON-RPC-driven imperative suite takes (cell
|
|
226
|
+
* verbs, origin, body-size, actor lookup/search, account lifecycle, app
|
|
227
|
+
* settings, testing backdoor). Suites alias this under a self-documenting
|
|
228
|
+
* per-suite name (e.g. `OriginCrossTestOptions = RpcPathCrossSuiteOptions`).
|
|
230
229
|
*/
|
|
231
|
-
export
|
|
230
|
+
export interface RpcPathCrossSuiteOptions extends CrossSuiteOptions {
|
|
231
|
+
/** RPC endpoint path the methods are mounted on. Default `/api/rpc`. */
|
|
232
|
+
readonly rpc_path?: string;
|
|
233
|
+
}
|
|
232
234
|
/**
|
|
233
235
|
* Cross-process backend handle enriched with the bootstrapped keeper's
|
|
234
236
|
* captured credentials. Consumers compose this in vitest's
|
|
@@ -366,6 +368,13 @@ export interface CrossProcessSetupOptions {
|
|
|
366
368
|
export declare const capture_schema_snapshot: (handle: ReconstructedBootstrappedBackendHandle, options?: {
|
|
367
369
|
exclude_tables?: ReadonlyArray<string>;
|
|
368
370
|
}) => Promise<SchemaSnapshot>;
|
|
371
|
+
/**
|
|
372
|
+
* Backdating offset (seconds) the `mint_expired_session` seam passes to
|
|
373
|
+
* `mint_test_session` / `_testing_mint_session`. A minute in the past is
|
|
374
|
+
* comfortably past `NOW()` for the DB-row expiry gate without depending on
|
|
375
|
+
* clock precision.
|
|
376
|
+
*/
|
|
377
|
+
export declare const EXPIRED_SESSION_OFFSET_SECONDS = -60;
|
|
369
378
|
/**
|
|
370
379
|
* Build a `SetupTest` against a spawned + bootstrapped backend.
|
|
371
380
|
*
|
|
@@ -390,94 +399,4 @@ export declare const capture_schema_snapshot: (handle: ReconstructedBootstrapped
|
|
|
390
399
|
* revoke-all) and hardcoded-username signup tests work uniformly.
|
|
391
400
|
*/
|
|
392
401
|
export declare const default_cross_process_setup: (handle: ReconstructedBootstrappedBackendHandle, options?: CrossProcessSetupOptions) => SetupTest;
|
|
393
|
-
/**
|
|
394
|
-
* Consumer-facing options for `default_in_process_suite_options` — the
|
|
395
|
-
* minimal factory inputs both `default_in_process_setup` and
|
|
396
|
-
* `create_test_app_surface_spec` consume to produce the
|
|
397
|
-
* `{setup_test, surface_source, capabilities}` bundle.
|
|
398
|
-
*/
|
|
399
|
-
export interface DefaultInProcessSuiteOptions {
|
|
400
|
-
session_options: SessionOptions<string>;
|
|
401
|
-
create_route_specs: (ctx: AppServerContext) => Array<RouteSpec>;
|
|
402
|
-
rpc_endpoints?: RpcEndpointsSuiteOption;
|
|
403
|
-
/**
|
|
404
|
-
* Bootstrap config — top-level slot, single source of truth for both
|
|
405
|
-
* surface generation and live dispatch. Same precedent as
|
|
406
|
-
* `rpc_endpoints`. Discriminated by `mode`; omit for the default (no
|
|
407
|
-
* bootstrap route mounted).
|
|
408
|
-
*/
|
|
409
|
-
bootstrap?: BootstrapServerOptions;
|
|
410
|
-
app_options?: SuiteAppOptions;
|
|
411
|
-
/**
|
|
412
|
-
* Additional roles to grant the bootstrapped keeper alongside
|
|
413
|
-
* `ROLE_KEEPER` — additive, never replaces. The keeper account
|
|
414
|
-
* always holds `ROLE_KEEPER` (otherwise daemon-token auth breaks);
|
|
415
|
-
* pass extras here for suites that need additional role coverage.
|
|
416
|
-
*
|
|
417
|
-
* Admin-suite consumers pass `[ROLE_ADMIN]` so the default keeper
|
|
418
|
-
* can hit admin-gated RPC methods.
|
|
419
|
-
* `describe_standard_admin_integration_tests` and
|
|
420
|
-
* `describe_audit_completeness_tests` need this.
|
|
421
|
-
*/
|
|
422
|
-
extra_keeper_roles?: Array<string>;
|
|
423
|
-
/**
|
|
424
|
-
* Bootstrap-time secondary accounts seeded alongside the keeper. See
|
|
425
|
-
* `ExtraAccountSpec` for the cradle-only-bypass rationale. Same shape
|
|
426
|
-
* as the cross-process `extra_accounts` option — suites read seeded
|
|
427
|
-
* accounts from `fixture.extra_accounts[username]` regardless of
|
|
428
|
-
* transport.
|
|
429
|
-
*/
|
|
430
|
-
extra_accounts?: ReadonlyArray<ExtraAccountSpec>;
|
|
431
|
-
/**
|
|
432
|
-
* Additional actor names to seed on the bootstrapped keeper — exposed on
|
|
433
|
-
* `fixture.extra_actors`. See `TestFixtureBase.extra_actors`.
|
|
434
|
-
*/
|
|
435
|
-
extra_actors?: ReadonlyArray<string>;
|
|
436
|
-
/**
|
|
437
|
-
* Pre-built `AppSurfaceSpec` — overrides the default which calls
|
|
438
|
-
* `create_test_app_surface_spec` against the same factory inputs.
|
|
439
|
-
* Pass when surface assembly needs fields outside the shared subset
|
|
440
|
-
* (e.g. `env_schema`, `event_specs`, `ws_endpoints`, `transform_middleware`).
|
|
441
|
-
*/
|
|
442
|
-
surface_source?: AppSurfaceSpec;
|
|
443
|
-
}
|
|
444
|
-
/**
|
|
445
|
-
* Build the full in-process suite bundle in a single helper invocation.
|
|
446
|
-
* Output covers `{setup_test, surface_source, capabilities}` plus every
|
|
447
|
-
* factory input the Tier 1 suites read at their top level
|
|
448
|
-
* (`session_options`, `create_route_specs`, `rpc_endpoints`) — so the
|
|
449
|
-
* call site spreads once and adds only suite-specific extras
|
|
450
|
-
* (`roles`, `skip_routes`, `input_overrides`, `db_factories`, ...).
|
|
451
|
-
*
|
|
452
|
-
* ```ts
|
|
453
|
-
* // Suite-extras-free call: helper output is the entire options bag.
|
|
454
|
-
* describe_round_trip_validation(default_in_process_suite_options({
|
|
455
|
-
* session_options,
|
|
456
|
-
* create_route_specs,
|
|
457
|
-
* rpc_endpoints: [rpc_endpoint_spec],
|
|
458
|
-
* }));
|
|
459
|
-
*
|
|
460
|
-
* // With suite-specific extras: spread and add.
|
|
461
|
-
* describe_standard_admin_integration_tests({
|
|
462
|
-
* ...default_in_process_suite_options({
|
|
463
|
-
* session_options, create_route_specs, rpc_endpoints,
|
|
464
|
-
* extra_keeper_roles: [ROLE_ADMIN],
|
|
465
|
-
* }),
|
|
466
|
-
* roles,
|
|
467
|
-
* });
|
|
468
|
-
* ```
|
|
469
|
-
*
|
|
470
|
-
* Suites that don't read `session_options` / `rpc_endpoints` at their
|
|
471
|
-
* top level (`round_trip`, `data_exposure`) accept the spread anyway —
|
|
472
|
-
* excess properties on spread sources aren't checked by TS, and the
|
|
473
|
-
* uniform shape keeps consumer call sites mechanical.
|
|
474
|
-
*/
|
|
475
|
-
export declare const default_in_process_suite_options: <const O extends DefaultInProcessSuiteOptions>(options: O) => {
|
|
476
|
-
setup_test: SetupTest;
|
|
477
|
-
surface_source: AppSurfaceSpec;
|
|
478
|
-
capabilities: BackendCapabilities;
|
|
479
|
-
session_options: O["session_options"];
|
|
480
|
-
create_route_specs: O["create_route_specs"];
|
|
481
|
-
rpc_endpoints: O["rpc_endpoints"];
|
|
482
|
-
};
|
|
483
402
|
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/setup.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/setup.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA0B9B,OAAO,EAAC,IAAI,EAAC,MAAM,wBAAwB,CAAC;AAK5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAyB,KAAK,cAAc,EAAC,MAAM,kCAAkC,CAAC;AAC7F,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAE7C;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACtC;AAED,sEAAsE;AACtE,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,OAAO,EAAE;QAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAC;IACjE,QAAQ,CAAC,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;KAAC,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,sBAAsB,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5F,QAAQ,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3F;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,GACvC,QAAQ;IACP,OAAO,EAAE;QAAC,EAAE,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAC;IACtC,KAAK,EAAE;QAAC,EAAE,EAAE,IAAI,CAAA;KAAC,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACvB,EACD,aAAa,MAAM,KACjB,mBAaD,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,eAAe;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,EAAE;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAC,KAAK,cAAc,CAAC;IAC1F,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE;QAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAC;IACjE,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;KAAC,CAAC;IACpC,8DAA8D;IAC9D,QAAQ,CAAC,sBAAsB,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5F,4DAA4D;IAC5D,QAAQ,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3F,iEAAiE;IACjE,QAAQ,CAAC,2BAA2B,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjG;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE,wBAAwB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7F;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACvE;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IACjF;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACrD;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IACjC,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IAClE,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC/D,iEAAiE;IACjE,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAC1C,2DAA2D;IAC3D,QAAQ,CAAC,cAAc,EAAE;QAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAC;IACxE,yDAAyD;IACzD,QAAQ,CAAC,YAAY,EAAE;QAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;KAAC,CAAC;IAC3C,wGAAwG;IACxG,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC/C;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,sCAAsC,GAAG,IAAI,CACxD,yBAAyB,EACzB,OAAO,GAAG,UAAU,CACpB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,qCAAqC;IACrD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;IACrE,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC,cAAc,CAAC,CAAC;IACjE,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC/C;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GACzC,QAAQ,yBAAyB,KAC/B,qCAMD,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,GAC3C,YAAY,qCAAqC,KAC/C,sCAUD,CAAC;AAEH,iDAAiD;AACjD,MAAM,WAAW,wBAAwB;IACxC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACpD;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC1D;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC9C;AAqFD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,GACnC,QAAQ,sCAAsC,EAC9C,UAAS;IAAC,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAM,KACpD,OAAO,CAAC,cAAc,CAUxB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAkSlD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,2BAA2B,GACvC,QAAQ,sCAAsC,EAC9C,UAAU,wBAAwB,KAChC,SAsIF,CAAC"}
|
|
@@ -10,24 +10,22 @@ import '../assert_dev_env.js';
|
|
|
10
10
|
* account / actor identity, three header builders, a multi-account mint
|
|
11
11
|
* factory, and (in-process only) the in-memory keyring + raw backend.
|
|
12
12
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
13
|
+
* The cross-process producer `default_cross_process_setup` lives here,
|
|
14
|
+
* alongside the spawn-a-backend transport plumbing — it implements the
|
|
15
|
+
* `SetupTest` contract by spawning a binary and bootstrapping over real
|
|
16
|
+
* HTTP. The in-process producers (`default_in_process_setup` /
|
|
17
|
+
* `default_in_process_suite_options`, which wrap `create_test_app`) live
|
|
18
|
+
* in the sibling `in_process_setup.ts` so this module — and the
|
|
19
|
+
* cross-process consumers that import it — stay free of the in-process
|
|
20
|
+
* Hono app and its optional `hono` peer dependency.
|
|
18
21
|
*
|
|
19
22
|
* @module
|
|
20
23
|
*/
|
|
21
24
|
import { z } from 'zod';
|
|
22
25
|
import { Uuid } from '@fuzdev/fuz_util/id.js';
|
|
23
|
-
import { ROLE_KEEPER } from '../../auth/role_schema.js';
|
|
24
|
-
import { query_create_actor } from '../../auth/account_queries.js';
|
|
25
26
|
import { DAEMON_TOKEN_HEADER } from '../../auth/daemon_token.js';
|
|
26
27
|
import { USERNAME_LENGTH_MAX } from '../../primitive_schemas.js';
|
|
27
|
-
import {
|
|
28
|
-
import { create_test_app_surface_spec } from '../stubs.js';
|
|
29
|
-
import { http_transport, } from '../rpc_helpers.js';
|
|
30
|
-
import { in_process_capabilities } from './capabilities.js';
|
|
28
|
+
import { DEFAULT_TEST_PASSWORD } from '../test_credentials.js';
|
|
31
29
|
import { create_fetch_transport } from '../transports/fetch_transport.js';
|
|
32
30
|
/**
|
|
33
31
|
* Build an `ExtraAccountFixture` from a seeded `{account, actor,
|
|
@@ -40,7 +38,7 @@ import { create_fetch_transport } from '../transports/fetch_transport.js';
|
|
|
40
38
|
* helper so the fixture-side header builders + field plumbing stays
|
|
41
39
|
* in one place.
|
|
42
40
|
*/
|
|
43
|
-
const build_extra_account_fixture = (seeded, cookie_name) => ({
|
|
41
|
+
export const build_extra_account_fixture = (seeded, cookie_name) => ({
|
|
44
42
|
account: seeded.account,
|
|
45
43
|
actor: seeded.actor,
|
|
46
44
|
api_token: seeded.api_token,
|
|
@@ -54,99 +52,6 @@ const build_extra_account_fixture = (seeded, cookie_name) => ({
|
|
|
54
52
|
...extra,
|
|
55
53
|
}),
|
|
56
54
|
});
|
|
57
|
-
/**
|
|
58
|
-
* Wrap a Hono-style app into a `FetchTransport`-shaped object so the
|
|
59
|
-
* shared `TestFixtureBase.transport` type holds for both in-process and
|
|
60
|
-
* cross-process setups. In-process has no real cookie jar — the no-op
|
|
61
|
-
* `cookies()` returns `[]`; in-process tests build cookies via
|
|
62
|
-
* `fixture.create_session_headers()` instead.
|
|
63
|
-
*/
|
|
64
|
-
const in_process_fetch_transport = (app) => {
|
|
65
|
-
const call = http_transport(app);
|
|
66
|
-
const transport = ((url, init) => call(url, init));
|
|
67
|
-
return Object.assign(transport, { cookies: () => [] });
|
|
68
|
-
};
|
|
69
|
-
/**
|
|
70
|
-
* Build a `SetupTest` that creates a fresh `TestApp` per call via
|
|
71
|
-
* `create_test_app` and projects it into the `TestFixture` shape.
|
|
72
|
-
*
|
|
73
|
-
* Same factory inputs `create_test_app` already takes — this helper
|
|
74
|
-
* is a projection layer, not a new lifecycle. fuz_app's own `src/test/`
|
|
75
|
-
* and consumer suites pass `default_in_process_setup({...factory_inputs})`
|
|
76
|
-
* in place of the old per-suite factory-input bundle. The `extra_accounts`
|
|
77
|
-
* slot (see `InProcessSetupOptions`) seeds bootstrap-time secondaries
|
|
78
|
-
* directly via `create_test_account_with_credentials` against the same
|
|
79
|
-
* DB the keeper just landed on — mirrors the cross-process
|
|
80
|
-
* `_testing_reset` cradle so suite bodies read
|
|
81
|
-
* `fixture.extra_accounts[username]` uniformly regardless of transport.
|
|
82
|
-
*
|
|
83
|
-
* The describe-level `auth_integration_truncate_tables` / pglite WASM
|
|
84
|
-
* cache lifecycle stays in `create_pglite_factory` / `create_describe_db`
|
|
85
|
-
* (`testing/db.ts`) — `default_in_process_setup` doesn't manage db state
|
|
86
|
-
* beyond what `create_test_app` already does.
|
|
87
|
-
*/
|
|
88
|
-
export const default_in_process_setup = (options) => async () => {
|
|
89
|
-
// Per-test fresh db. When `options.migration_namespaces` is set,
|
|
90
|
-
// `create_test_app` provisions an auth+extras PGlite (e.g. the cell
|
|
91
|
-
// layer); otherwise the auth-only default. Either way the factory
|
|
92
|
-
// resets + re-migrates on each `create`, so the per-test keeper
|
|
93
|
-
// bootstrap below lands on a clean DB.
|
|
94
|
-
const test_app = await create_test_app(options);
|
|
95
|
-
// Seed bootstrap-time secondaries against the same DB the keeper
|
|
96
|
-
// just landed on. Direct-insert is the only path for roles whose
|
|
97
|
-
// `grant_paths` excludes `'admin'` (e.g. `ROLE_KEEPER`) — see
|
|
98
|
-
// `ExtraAccountSpec` for why this bypass is bootstrap-cradle-only.
|
|
99
|
-
const extra_accounts = {};
|
|
100
|
-
const { cookie_name } = options.session_options;
|
|
101
|
-
for (const spec of options.extra_accounts ?? []) {
|
|
102
|
-
const seeded = await create_test_account_with_credentials({
|
|
103
|
-
db: test_app.backend.deps.db,
|
|
104
|
-
keyring: test_app.backend.keyring,
|
|
105
|
-
session_options: options.session_options,
|
|
106
|
-
password: test_app.backend.deps.password,
|
|
107
|
-
username: spec.username,
|
|
108
|
-
password_value: spec.password_value,
|
|
109
|
-
roles: [...spec.roles],
|
|
110
|
-
});
|
|
111
|
-
extra_accounts[spec.username] = build_extra_account_fixture(seeded, cookie_name);
|
|
112
|
-
}
|
|
113
|
-
// Seed additional keeper actors directly against the same DB. Mirrors
|
|
114
|
-
// the cross-process `_testing_reset` `extra_actors` path; no production
|
|
115
|
-
// wire mints a second actor, so this bootstrap-cradle insert is the
|
|
116
|
-
// only way into a multi-actor keeper state.
|
|
117
|
-
const extra_actors = [];
|
|
118
|
-
for (const name of options.extra_actors ?? []) {
|
|
119
|
-
const seeded_actor = await query_create_actor({ db: test_app.backend.deps.db }, test_app.backend.account.id, name);
|
|
120
|
-
extra_actors.push({ id: seeded_actor.id, name: seeded_actor.name });
|
|
121
|
-
}
|
|
122
|
-
return {
|
|
123
|
-
transport: in_process_fetch_transport(test_app.app),
|
|
124
|
-
// In-process the wrapper is stateless and never auto-adds Origin —
|
|
125
|
-
// `options` is accepted for API symmetry with cross-process but
|
|
126
|
-
// has no observable effect.
|
|
127
|
-
fresh_transport: () => in_process_fetch_transport(test_app.app),
|
|
128
|
-
account: test_app.backend.account,
|
|
129
|
-
actor: test_app.backend.actor,
|
|
130
|
-
create_session_headers: test_app.create_session_headers,
|
|
131
|
-
create_bearer_headers: test_app.create_bearer_headers,
|
|
132
|
-
create_daemon_token_headers: test_app.create_daemon_token_headers,
|
|
133
|
-
create_account: test_app.create_account,
|
|
134
|
-
extra_accounts,
|
|
135
|
-
extra_actors,
|
|
136
|
-
// Forge directly against the live backend's DB + keyring — no wire
|
|
137
|
-
// hop needed in-process.
|
|
138
|
-
mint_expired_session: async () => {
|
|
139
|
-
const { session_cookie } = await mint_test_session({
|
|
140
|
-
db: test_app.backend.deps.db,
|
|
141
|
-
keyring: test_app.backend.keyring,
|
|
142
|
-
session_options: options.session_options,
|
|
143
|
-
account_id: test_app.backend.account.id,
|
|
144
|
-
expires_in_seconds: EXPIRED_SESSION_OFFSET_SECONDS,
|
|
145
|
-
});
|
|
146
|
-
return `${cookie_name}=${session_cookie}`;
|
|
147
|
-
},
|
|
148
|
-
};
|
|
149
|
-
};
|
|
150
55
|
/**
|
|
151
56
|
* Strip the non-serializable members so the result can be passed to
|
|
152
57
|
* vitest's `project.provide`. Call in `globalSetup` before provide.
|
|
@@ -266,7 +171,7 @@ export const capture_schema_snapshot = async (handle, options = {}) => {
|
|
|
266
171
|
* comfortably past `NOW()` for the DB-row expiry gate without depending on
|
|
267
172
|
* clock precision.
|
|
268
173
|
*/
|
|
269
|
-
const EXPIRED_SESSION_OFFSET_SECONDS = -60;
|
|
174
|
+
export const EXPIRED_SESSION_OFFSET_SECONDS = -60;
|
|
270
175
|
/** Structural subset of `_testing_mint_session`'s output. */
|
|
271
176
|
const MintSessionResponseShape = z.object({ session_cookie: z.string() });
|
|
272
177
|
/** Structural subset of `_testing_reset`'s output. */
|
|
@@ -582,68 +487,3 @@ export const default_cross_process_setup = (handle, options) => {
|
|
|
582
487
|
};
|
|
583
488
|
};
|
|
584
489
|
};
|
|
585
|
-
// NOTE: bootstrap config is read from `options.bootstrap` — top-level slot,
|
|
586
|
-
// single source of truth for both the surface spec (so the route appears in
|
|
587
|
-
// `expected_public_routes` / attack-surface iteration) AND the live
|
|
588
|
-
// `create_test_app` (so the route exists at dispatch time and returns 403
|
|
589
|
-
// `ERROR_ALREADY_BOOTSTRAPPED` matching its declared 403 schema). Same
|
|
590
|
-
// precedent as `rpc_endpoints`. Discriminated union shape (`mode: 'disabled'`
|
|
591
|
-
// | `'surface_only'` | `'live'`) replaces the old `token_path: string | null`
|
|
592
|
-
// overload that conflated three deployment intents on one channel.
|
|
593
|
-
/**
|
|
594
|
-
* Build the full in-process suite bundle in a single helper invocation.
|
|
595
|
-
* Output covers `{setup_test, surface_source, capabilities}` plus every
|
|
596
|
-
* factory input the Tier 1 suites read at their top level
|
|
597
|
-
* (`session_options`, `create_route_specs`, `rpc_endpoints`) — so the
|
|
598
|
-
* call site spreads once and adds only suite-specific extras
|
|
599
|
-
* (`roles`, `skip_routes`, `input_overrides`, `db_factories`, ...).
|
|
600
|
-
*
|
|
601
|
-
* ```ts
|
|
602
|
-
* // Suite-extras-free call: helper output is the entire options bag.
|
|
603
|
-
* describe_round_trip_validation(default_in_process_suite_options({
|
|
604
|
-
* session_options,
|
|
605
|
-
* create_route_specs,
|
|
606
|
-
* rpc_endpoints: [rpc_endpoint_spec],
|
|
607
|
-
* }));
|
|
608
|
-
*
|
|
609
|
-
* // With suite-specific extras: spread and add.
|
|
610
|
-
* describe_standard_admin_integration_tests({
|
|
611
|
-
* ...default_in_process_suite_options({
|
|
612
|
-
* session_options, create_route_specs, rpc_endpoints,
|
|
613
|
-
* extra_keeper_roles: [ROLE_ADMIN],
|
|
614
|
-
* }),
|
|
615
|
-
* roles,
|
|
616
|
-
* });
|
|
617
|
-
* ```
|
|
618
|
-
*
|
|
619
|
-
* Suites that don't read `session_options` / `rpc_endpoints` at their
|
|
620
|
-
* top level (`round_trip`, `data_exposure`) accept the spread anyway —
|
|
621
|
-
* excess properties on spread sources aren't checked by TS, and the
|
|
622
|
-
* uniform shape keeps consumer call sites mechanical.
|
|
623
|
-
*/
|
|
624
|
-
export const default_in_process_suite_options = (options) => ({
|
|
625
|
-
setup_test: default_in_process_setup({
|
|
626
|
-
session_options: options.session_options,
|
|
627
|
-
create_route_specs: options.create_route_specs,
|
|
628
|
-
rpc_endpoints: options.rpc_endpoints,
|
|
629
|
-
bootstrap: options.bootstrap,
|
|
630
|
-
app_options: options.app_options,
|
|
631
|
-
roles: [ROLE_KEEPER, ...(options.extra_keeper_roles ?? [])],
|
|
632
|
-
extra_accounts: options.extra_accounts,
|
|
633
|
-
extra_actors: options.extra_actors,
|
|
634
|
-
}),
|
|
635
|
-
surface_source: options.surface_source ??
|
|
636
|
-
create_test_app_surface_spec({
|
|
637
|
-
session_options: options.session_options,
|
|
638
|
-
create_route_specs: options.create_route_specs,
|
|
639
|
-
rpc_endpoints: options.rpc_endpoints,
|
|
640
|
-
// Mirror what `create_test_app` → `create_app_server` will mount.
|
|
641
|
-
// Both helpers read from the top-level `bootstrap` slot so surface
|
|
642
|
-
// and live app stay in sync by construction.
|
|
643
|
-
bootstrap: options.bootstrap,
|
|
644
|
-
}),
|
|
645
|
-
capabilities: in_process_capabilities,
|
|
646
|
-
session_options: options.session_options,
|
|
647
|
-
create_route_specs: options.create_route_specs,
|
|
648
|
-
rpc_endpoints: options.rpc_endpoints,
|
|
649
|
-
});
|
|
@@ -51,7 +51,7 @@ import { assert, describe } from 'vitest';
|
|
|
51
51
|
import { account_session_list_action_spec, account_session_revoke_action_spec, account_session_revoke_all_action_spec, } from '../../auth/account_action_specs.js';
|
|
52
52
|
import { admin_session_revoke_all_action_spec } from '../../auth/admin_action_specs.js';
|
|
53
53
|
import { audit_log_event_specs } from '../../realtime/sse_auth_guard.js';
|
|
54
|
-
import { SSE_CONNECTED_COMMENT } from '../../realtime/
|
|
54
|
+
import { SSE_CONNECTED_COMMENT } from '../../realtime/sse_constants.js';
|
|
55
55
|
import { create_sse_transport } from '../transports/sse_transport.js';
|
|
56
56
|
import { create_rpc_post_init } from '../rpc_helpers.js';
|
|
57
57
|
import { test_if } from './capabilities.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '../assert_dev_env.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { RpcPathCrossSuiteOptions } from './setup.js';
|
|
3
3
|
/** Options for the testing-backdoor negative-credential suite. */
|
|
4
|
-
export type TestingBackdoorCrossTestOptions =
|
|
4
|
+
export type TestingBackdoorCrossTestOptions = RpcPathCrossSuiteOptions;
|
|
5
5
|
export declare const describe_testing_backdoor_cross_tests: (options: TestingBackdoorCrossTestOptions) => void;
|
|
6
6
|
//# sourceMappingURL=testing_backdoor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing_backdoor.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_backdoor.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAyD9B,OAAO,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"testing_backdoor.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_backdoor.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAyD9B,OAAO,KAAK,EAAC,wBAAwB,EAAc,MAAM,YAAY,CAAC;AA+DtE,kEAAkE;AAClE,MAAM,MAAM,+BAA+B,GAAG,wBAAwB,CAAC;AAEvE,eAAO,MAAM,qCAAqC,GACjD,SAAS,+BAA+B,KACtC,IAiCF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing_reset_actions.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_reset_actions.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,OAAO,EAAa,KAAK,SAAS,EAAC,MAAM,6BAA6B,CAAC;AAIvE,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"testing_reset_actions.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_reset_actions.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,OAAO,EAAa,KAAK,SAAS,EAAC,MAAM,6BAA6B,CAAC;AAIvE,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AA+BvC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;QAiBpC;;;;;;;;WAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWyC,CAAC;AAE/C;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;CAWA,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;CAwBC,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,QAAO,SACiB,CAAC;AAEzE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;CAeK,CAAC;AAE/C;;;;;;;;;GASG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWF,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,QAAO,SAGvD,CAAC;AAEH,4CAA4C;AAC5C,MAAM,WAAW,2BAA2B;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACjD;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;IAC9C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACxD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,GAClC,MAAM,OAAO,EACb,SAAS,2BAA2B,KAClC,KAAK,CAAC,SAAS,CAqIjB,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,0BAA0B,UAAmC,CAAC"}
|
|
@@ -67,7 +67,8 @@ import { ROLE_ADMIN, ROLE_KEEPER } from '../../auth/role_schema.js';
|
|
|
67
67
|
import { auth_integration_truncate_tables } from '../db.js';
|
|
68
68
|
import { query_schema_snapshot, SchemaSnapshot } from '../schema_introspect.js';
|
|
69
69
|
import { query_create_actor } from '../../auth/account_queries.js';
|
|
70
|
-
import { create_test_account_with_credentials, mint_test_session
|
|
70
|
+
import { create_test_account_with_credentials, mint_test_session } from '../app_server.js';
|
|
71
|
+
import { DEFAULT_TEST_PASSWORD } from '../test_credentials.js';
|
|
71
72
|
/**
|
|
72
73
|
* Shared `auth` axis for every `_testing_*` action: keeper-only via the
|
|
73
74
|
* daemon-token credential, no acting actor. This is the entire structural
|
|
@@ -23,9 +23,9 @@ import { ErrorCoverageCollector, assert_error_coverage, DEFAULT_INTEGRATION_ERRO
|
|
|
23
23
|
import { is_public_auth } from '../http/auth_shape.js';
|
|
24
24
|
import { account_verify_action_spec, account_session_list_action_spec, account_session_revoke_action_spec, account_session_revoke_all_action_spec, account_token_create_action_spec, account_token_list_action_spec, account_token_revoke_action_spec, } from '../auth/account_action_specs.js';
|
|
25
25
|
import { invite_create_action_spec } from '../auth/admin_action_specs.js';
|
|
26
|
-
import { LoginOutput, AccountStatusOutput } from '../auth/
|
|
26
|
+
import { LoginOutput, AccountStatusOutput } from '../auth/account_route_schema.js';
|
|
27
27
|
import {} from './cross_backend/capabilities.js';
|
|
28
|
-
import { DEFAULT_TEST_PASSWORD } from './
|
|
28
|
+
import { DEFAULT_TEST_PASSWORD } from './test_credentials.js';
|
|
29
29
|
/**
|
|
30
30
|
* Standard integration test suite for fuz_app auth routes.
|
|
31
31
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAE7B;;;;;;;;GAQG;AAEH,OAAO,EAAC,EAAE,EAAyB,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAC,IAAI,EAAC,MAAM,MAAM,CAAC;AAC1B,OAAO,KAAK,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,8 @@ import { create_bearer_auth_middleware } from '../auth/bearer_auth.js';
|
|
|
15
15
|
import { query_validate_api_token } from '../auth/api_token_queries.js';
|
|
16
16
|
import { query_account_by_id, query_actor_by_id, query_actors_by_account, } from '../auth/account_queries.js';
|
|
17
17
|
import { query_role_grant_find_active_for_actor } from '../auth/role_grant_queries.js';
|
|
18
|
-
import { create_proxy_middleware
|
|
18
|
+
import { create_proxy_middleware } from '../http/proxy.js';
|
|
19
|
+
import { get_client_ip } from '../http/client_ip.js';
|
|
19
20
|
import { verify_request_source, parse_allowed_origins } from '../http/origin.js';
|
|
20
21
|
import { REQUEST_CONTEXT_KEY } from '../auth/request_context.js';
|
|
21
22
|
import { ACCOUNT_ID_KEY, AUTH_API_TOKEN_ID_KEY, CREDENTIAL_TYPE_KEY, TEST_CONTEXT_PRESET_KEY, } from '../hono_context.js';
|
|
@@ -2,7 +2,7 @@ import './assert_dev_env.js';
|
|
|
2
2
|
import type { RouteSpec } from '../http/route_spec.js';
|
|
3
3
|
import type { AppServerContext } from '../server/app_server_context.js';
|
|
4
4
|
import type { SessionOptions } from '../auth/session_cookie.js';
|
|
5
|
-
import {
|
|
5
|
+
import type { EventSpec } from '../realtime/sse.js';
|
|
6
6
|
import type { AuditLogEvent } from '../auth/audit_log_schema.js';
|
|
7
7
|
import { type SuiteAppOptions, type TestApp, type TestAccount } from './app_server.js';
|
|
8
8
|
import { type DbFactory } from './db.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse_round_trip.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/sse_round_trip.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAmB7B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"sse_round_trip.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/sse_round_trip.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAmB7B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAC,SAAS,EAAkB,MAAM,oBAAoB,CAAC;AAGnE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAG/D,OAAO,EAEN,KAAK,eAAe,EACpB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAwB,KAAK,SAAS,EAAC,MAAM,SAAS,CAAC;AAE9D,OAAO,EAIN,KAAK,uBAAuB,EAC5B,MAAM,kBAAkB,CAAC;AAO1B,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAChC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,OAAO,EAAE,CAAC,GAAG,EAAE;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E;;;OAGG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/B;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,8CAA8C;AAC9C,MAAM,WAAW,mBAAmB;IACnC,4CAA4C;IAC5C,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,qDAAqD;IACrD,kBAAkB,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAChE,iDAAiD;IACjD,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,qEAAqE;IACrE,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD;;;;;;;;;;;;OAYG;IACH,aAAa,EAAE,uBAAuB,CAAC;IACvC,8BAA8B;IAC9B,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;CAChC;AA+CD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GAAI,SAAS,mBAAmB,KAAG,IAgIvE,CAAC"}
|
|
@@ -14,7 +14,7 @@ import './assert_dev_env.js';
|
|
|
14
14
|
* @module
|
|
15
15
|
*/
|
|
16
16
|
import { describe, test, beforeAll, afterAll, assert } from 'vitest';
|
|
17
|
-
import { SSE_CONNECTED_COMMENT } from '../realtime/
|
|
17
|
+
import { SSE_CONNECTED_COMMENT } from '../realtime/sse_constants.js';
|
|
18
18
|
import { ROLE_ADMIN } from '../auth/role_schema.js';
|
|
19
19
|
import { create_audit_emitter } from '../auth/audit_emitter.js';
|
|
20
20
|
import { create_test_app, } from './app_server.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stubs.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/stubs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"stubs.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/stubs.ts"],"names":[],"mappings":"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"}
|