testing/cross_backend/spine_suites.ts

One call that runs every shipped single-backend cross suite a backend's capabilities admit — describe_spine_cross_suites(handle, options).

A consumer's cross project otherwise wires one file per upstream suite, so a suite added here never reaches it unless someone adds the file. The one-call form runs SUITE_NAMES — the closed registry of shipped suites, each named by its module — and builds every suite's options from the handle: the paths, cookie name and capabilities from handle.config (to_cross_suite_options), the daemon token from the handle, and each suite's setup_test through default_cross_process_setup with whatever seeding that suite needs (the multi-actor keeper, the offer grantor, the cell role holder). Each suite gates its own cases on the capabilities, so a backend runs what it mounts.

Options are additive.

  • exclude names a suite with the reason it can't run on this backend; the reason is required and shows in the run as a skipped test, so a skip is stated in code and visible in the report. testing_backdoor can't be excluded, by suite or by case, nor its capabilities.testing_backdoors changed: it checks the declaration the backdoor gating reads.
  • exclude_cases names single tests of a suite that does run, each by its name path (describe titles and test name, joined with ' > ') with a required reason; one beforeEach skips them at run time, so each shows as skipped with its reason, and an entry matching no collected test of its suite fails the closing check test.
  • overrides replaces a suite's derived options, field by field (a shallow merge over what the handle gives) — a role list the backend's WS upgrade requires, an xfail for a tracked divergence, a narrower capability set. An entry can be a function of the derived options instead, for a change built on a derived value. A required option the merge leaves undefined throws at collection.
  • rpc_success_fixtures / rpc_skip_methods / rpc_input_overrides go to the standard bundle's RPC round-trip; rpc_input_overrides also seeds rpc_adversarial's params cases (each override is the valid base they break one field of). A key naming a method on neither the declared surface nor live_rpc_endpoints throws at collection.
  • ws_required_roles names the roles the backend's WS upgrade requires, so the suites that open sockets for accounts they create give them those roles.
  • suite_roles names the roles the role-shaped suites use when the backend's registry lacks the spine's own (cell_editor, participant); the call seeds the holder each needs.

Inputs the handle doesn't carry. The declared surface (surface_source, session_options, rpc_endpoints, roles) is a required option. Paths and roles that name what the reference spines mount (the role-gated WS endpoint and its roles) default to the SPINE_* constants, and a suite whose capability flag is off never reaches them. Anything else a suite needs comes from the handle when it can (session_cookie_codec's cookie_keys from the config's SECRET_FUZ_COOKIE_KEYS), else from overrides; when neither has it, the call throws naming the suite — provide it or exclude the suite.

Backdoors. The backend's capabilities.testing_backdoors must declare SPINE_SUITES_REQUIRED_BACKDOORS (the per-test reset and the audit barrier), and _testing_put_fact when it declares fact_serving; the call throws otherwise. A suite every case of which drives another backdoor (credential_deadline, origin_conformance, ws_outbound_overflow) skips itself on a backend not declaring it, shown like an exclude with a reason naming the backdoor — so an exclude, override or exclude_cases entry for it is refused as dead.

Not in the one call (STANDALONE_CROSS_SUITES, with the reasons): the suites that need two handles (the differential), a backend spawned with live limiters (login_security, ws_action_rate_limit — the standard suites would exhaust them), and the conformance runner, which runs the consumer's own cases. Each keeps its own entry point.

Suites are registered without a wrapping describe, so their test names are the same as when each is called on its own — and an exclude_cases path is the name the reporter prints after the file and any describe wrapping the call.

view source

Declarations
#

18 declarations

check_spine_case_exclusions
#

testing/cross_backend/spine_suites.ts view source

internal

(exclude_cases: Readonly<Partial<Record<"cell_crud" | "cell_relations" | "cell_gated_create" | "fact_serving" | "ready" | "ws_role_gated" | "account_lifecycle" | "origin" | "actor_lookup" | "app_settings" | ... 33 more ... | "ws_round_trip", Readonly<...>>>>, collected: ReadonlyMap<...>): void import {check_spine_case_exclusions} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

Check every exclude_cases entry against the test paths each suite collected — the static half of the case exclusions, which the closing test register_spine_case_exclusions registers runs.

exclude_cases

the entries, by suite

type Readonly<Partial<Record<"cell_crud" | "cell_relations" | "cell_gated_create" | "fact_serving" | "ready" | "ws_role_gated" | "account_lifecycle" | "origin" | "actor_lookup" | "app_settings" | "body_size" | "body_size_smuggling" | "cell_grant_role" | "cell_grant_steward" | "cell_moderate" | "cell_ref_admission" | "cookie_attributes" | "credential_deadline" | "credential_header_robustness" | "identity_parity" | "origin_conformance" | "origin_scope" | "peer_ping_ws" | "query_shape" | "role_grant_offer_enumeration" | "role_grant_offer_lifecycle" | "role_grant_offer_notification_ws" | "role_grant_participation" | "role_grant_role_grammar" | "rpc_adversarial" | "session_cap" | "session_cookie_codec" | "simple_request" | "sse_round_trip" | "standard" | "testing_backdoor" | "token_lifetime" | "token_scope_surface" | "transport_composition" | "ws_connection_cap" | "ws_envelope" | "ws_inbound_dispatch" | "ws_outbound_overflow" | "ws_round_trip", Readonly<Record<string, string>>>>>

collected

each run suite's collected test paths

type ReadonlyMap<SuiteName, ReadonlySet<string>>

returns

void

throws

  • Error - naming every entry whose suite collected no test at its path

CrossSuiteHandleOptions
#

testing/cross_backend/spine_suites.ts view source

CrossSuiteHandleOptions import type {CrossSuiteHandleOptions} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

The suite options a backend's BackendConfig supplies.

capabilities

type BackendCapabilities

readonly

base_url

type string

readonly

rpc_path

type string

readonly

ws_path

type string

readonly

sse_path

type string | undefined

readonly

cookie_name

type string

readonly

describe_spine_cross_suites
#

testing/cross_backend/spine_suites.ts view source

(handle: ReconstructedBootstrappedBackendHandle, options: SpineCrossSuitesOptions): void import {describe_spine_cross_suites} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

Run every shipped single-backend cross suite against one spawned backend — see the module doc for what the options add and what stays outside.

handle

the backend, as inject_backend_handle() returns it

options

the declared surface, plus excludes, case exclusions and overrides

returns

void

throws

  • Error - on an exclude with no reason, an unknown suite name, a suite both excluded and overridden, an excluded `testing_backdoor` (or one of its cases, or an override changing its `capabilities.testing_backdoors`), an exclude, override or `exclude_cases` entry for a suite that skips itself or isn't run, a backend not declaring `SPINE_SUITES_REQUIRED_BACKDOORS` (or `_testing_put_fact` with `fact_serving`), or a suite missing an input the handle doesn't carry

get_spine_suite_backdoors
#

testing/cross_backend/spine_suites.ts view source

internal

(name: "cell_crud" | "cell_relations" | "cell_gated_create" | "fact_serving" | "ready" | "ws_role_gated" | "account_lifecycle" | "origin" | "actor_lookup" | "app_settings" | "body_size" | ... 32 more ... | "ws_round_trip"): readonly ("_testing_reset" | ... 8 more ... | "_testing_shorten_credential_expiry")[] import {get_spine_suite_backdoors} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

The backdoors every case of name drives beyond SPINE_SUITES_REQUIRED_BACKDOORS — a backend not declaring one skips the suite.

name

the suite

returns

readonly TestingBackdoorMethod[]

its SuiteEntry.backdoors, empty for a suite needing none

register_spine_case_exclusions
#

testing/cross_backend/spine_suites.ts view source

internal

(exclude_cases: Readonly<Partial<Record<"cell_crud" | "cell_relations" | "cell_gated_create" | "fact_serving" | "ready" | "ws_role_gated" | "account_lifecycle" | "origin" | "actor_lookup" | "app_settings" | ... 33 more ... | "ws_round_trip", Readonly<...>>>>, ranges: readonly SuiteTaskRange[]): void import {register_spine_case_exclusions} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

Skip the exclude_cases tests, and fail on an entry no collected test has. describe_spine_cross_suites calls it after registering the suites, in the same suite.

One beforeEach on the calling suite: it finds the test's top-level task among the ranges the suites registered, and calls ctx.skip(reason) when that suite's entries name the test's path — so the suite files stay as they are, and the test shows as skipped with its reason. A closing test holds every entry to a test its suite collected (check_spine_case_exclusions; the paths are read at collection, so a filtered run still checks them). A skipped test's own beforeEach hooks don't run, but its afterEach hooks and its suite's beforeAll still do.

exclude_cases

the entries, by suite

type Readonly<Partial<Record<"cell_crud" | "cell_relations" | "cell_gated_create" | "fact_serving" | "ready" | "ws_role_gated" | "account_lifecycle" | "origin" | "actor_lookup" | "app_settings" | "body_size" | "body_size_smuggling" | "cell_grant_role" | "cell_grant_steward" | "cell_moderate" | "cell_ref_admission" | "cookie_attributes" | "credential_deadline" | "credential_header_robustness" | "identity_parity" | "origin_conformance" | "origin_scope" | "peer_ping_ws" | "query_shape" | "role_grant_offer_enumeration" | "role_grant_offer_lifecycle" | "role_grant_offer_notification_ws" | "role_grant_participation" | "role_grant_role_grammar" | "rpc_adversarial" | "session_cap" | "session_cookie_codec" | "simple_request" | "sse_round_trip" | "standard" | "testing_backdoor" | "token_lifetime" | "token_scope_surface" | "transport_composition" | "ws_connection_cap" | "ws_envelope" | "ws_inbound_dispatch" | "ws_outbound_overflow" | "ws_round_trip", Readonly<Record<string, string>>>>>

ranges

each run suite's top-level tasks in the calling suite

type readonly SuiteTaskRange[]

returns

void

SPINE_SUITES_REQUIRED_BACKDOORS
#

testing/cross_backend/spine_suites.ts view source

readonly ("_testing_reset" | "_testing_drain_effects" | "_testing_mint_session" | "_testing_put_fact" | "_testing_flood_notifications" | "_testing_schema_snapshot" | "_testing_migration_tracker" | "_testing_action_manifest" | "_testing_origin_check" | "_testing_shorten_credential_expiry")[]

type readonly TestingBackdoorMethod[]

import {SPINE_SUITES_REQUIRED_BACKDOORS} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

The backdoors describe_spine_cross_suites requires of every backend, since the suites share them: _testing_reset is every setup_test's per-test reset, and _testing_drain_effects the barrier every audit read waits on. A backend whose capabilities.testing_backdoors lacks one fails at collection.

SpineCrossSuitesOptions
#

testing/cross_backend/spine_suites.ts view source

SpineCrossSuitesOptions import type {SpineCrossSuitesOptions} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

surface_source

The declared surface — the standard bundle and rpc_adversarial enumerate it.

type AppSurfaceSpec

readonly

session_options

The backend's session config, for the standard bundle.

type SessionOptions<string>

readonly

rpc_endpoints

The backend's RPC endpoints, for the standard bundle.

type RpcEndpointsSuiteOption

readonly

live_rpc_endpoints?

The RPC endpoints the backend live-mounts, for the methods it keeps off the declared surface (cell verbs, opt-in resolvers, _testing_* backdoors); given, rpc_adversarial sends them bad envelopes and params too. A backend's whole live mount is a fine value — a declared method still runs once, from the declared surface.

type RpcEndpointsSuiteOption

readonly

roles?

The backend's role schema; given, the standard bundle runs its admin suite.

type RoleSchemaResult

readonly

setup?

Setup options every suite's setup_test starts from — a signup path the backend mounts elsewhere, reject_unknown_audit_metadata_keys for a backend's own spine suite. A suite's own seeding is added to it (the role, account and actor lists concatenate).

type CrossProcessSetupOptions

readonly

exclude?

Suites this backend doesn't run, each with a non-empty reason. Each shows in the run as one skipped test carrying the reason. Not testing_backdoor, nor a suite that already skips itself for an undeclared backdoor.

type Readonly<Partial<Record<SuiteName, string>>>

readonly

exclude_cases?

Single tests this backend doesn't run, by suite, each by its name path (SuiteCaseExclusions) with a non-empty reason; each shows in the run as skipped with its reason. An entry naming a suite the call doesn't run, testing_backdoor, or a path no collected test of that suite has, fails.

type Readonly<Partial<Record<"cell_crud" | "cell_relations" | "cell_gated_create" | "fact_serving" | "ready" | "ws_role_gated" | "account_lifecycle" | "origin" | "actor_lookup" | "app_settings" | "body_size" | "body_size_smuggling" | "cell_grant_role" | "cell_grant_steward" | "cell_moderate" | "cell_ref_admission" | "cookie_attributes" | "credential_deadline" | "credential_header_robustness" | "identity_parity" | "origin_conformance" | "origin_scope" | "peer_ping_ws" | "query_shape" | "role_grant_offer_enumeration" | "role_grant_offer_lifecycle" | "role_grant_offer_notification_ws" | "role_grant_participation" | "role_grant_role_grammar" | "rpc_adversarial" | "session_cap" | "session_cookie_codec" | "simple_request" | "sse_round_trip" | "standard" | "testing_backdoor" | "token_lifetime" | "token_scope_surface" | "transport_composition" | "ws_connection_cap" | "ws_envelope" | "ws_inbound_dispatch" | "ws_outbound_overflow" | "ws_round_trip", Readonly<Record<string, string>>>>>

readonly

overrides?

Per-suite option overrides, a shallow merge over what the handle gives.

type SuiteOverrides

readonly

suite_roles?

The roles the role-shaped suites use, when the backend lacks the spine's own.

type SpineSuiteRoles

readonly

ws_required_roles?

The roles the backend's WS upgrade on ws_path requires (an admin-gated /api/ws: [ROLE_ADMIN]). Given, the suites that open sockets for accounts they create — credential_deadline, session_cap, ws_round_trip — create them holding these (ws_account_roles), and role_grant_offer_notification_ws expects revoking one to close the socket (ws_required_roles). Each must be admin-grantable.

type readonly string[]

readonly

rpc_max_body_bytes?

The backend's request-body cap on rpc_path, in bytes, when it isn't the spine default (SPINE_BODY_LIMIT_DEFAULT_BYTES): the boundary body_size, body_size_smuggling and transport_composition's RPC over-cap row probe.

type number

readonly

ws_max_message_bytes?

The backend's inbound WebSocket message cap on ws_path, in bytes, when it isn't the spine default (DEFAULT_WS_MAX_MESSAGE_BYTES): the boundary ws_round_trip's oversized-message case sends past.

type number

readonly

rpc_success_fixtures?

Forwarded to the standard bundle (StandardCrossProcessTestOptions.rpc_success_fixtures).

type RpcSuccessFixtures

readonly

rpc_skip_methods?

Forwarded to the standard bundle (StandardCrossProcessTestOptions.rpc_skip_methods).

type string[]

readonly

rpc_input_overrides?

Forwarded to the standard bundle (StandardCrossProcessTestOptions.rpc_input_overrides) and to rpc_adversarial (RpcAdversarialCrossTestOptions.input_overrides), where each override seeds the method's params cases. Those cases are sent as a single-actor principal, so an override omits acting. A key naming a method on neither the declared surface nor live_rpc_endpoints throws at collection.

type Map<string, Record<string, unknown>>

readonly

SpineSuiteRoles
#

testing/cross_backend/spine_suites.ts view source

SpineSuiteRoles import type {SpineSuiteRoles} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

The roles the role-shaped suites use, for a backend whose registry lacks the spine's own. Set them here rather than in overrides: the call seeds the holder each needs.

cell_grant?

The role cell_grant_role's grants name, seeded on its holder at reset. Default SPINE_CELL_EDITOR_ROLE. ROLE_KEEPER serves a backend with only the builtin roles; ROLE_ADMIN can't (an admin reaches every cell).

type string

readonly

conferral?

The admin-grantable role role_grant_offer_lifecycle offers and role_grant_participation confers. Default SPINE_PARTICIPANT_ROLE; ROLE_ADMIN serves a backend with only the builtin roles (the scoped assign case then skips, as a builtin is global-only).

type string

readonly

STANDALONE_CROSS_SUITES
#

StandaloneSuiteName
#

SUITE_NAMES
#

testing/cross_backend/spine_suites.ts view source

readonly ["account_lifecycle", "actor_lookup", "app_settings", "body_size", "body_size_smuggling", "cell_crud", "cell_gated_create", "cell_grant_role", "cell_grant_steward", ... 34 more ..., "ws_round_trip"] import {SUITE_NAMES} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

Every shipped suite describe_spine_cross_suites runs, each named by its module under testing/cross_backend/ (ws_round_trip is describe_cross_process_ws_tests, standard the standard bundle). Closed: a guard test holds it, with STANDALONE_CROSS_SUITES, to every module that exports a describe_* suite, so a new suite fails until it is registered.

SuiteCaseExclusions
#

testing/cross_backend/spine_suites.ts view source

Readonly<Partial<Record<"cell_crud" | "cell_relations" | "cell_gated_create" | "fact_serving" | "ready" | "ws_role_gated" | "account_lifecycle" | "origin" | "actor_lookup" | "app_settings" | ... 33 more ... | "ws_round_trip", Readonly<...>>>>

type Readonly<Partial<Record<SuiteName, Readonly<Record<string, string>>>>>

import type {SuiteCaseExclusions} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

Per-suite test exclusions: each test's name path — its describe titles and its own name, joined with ' > ', as the reporter prints it after the file (and after any describe wrapping the call) — mapped to why it can't run on this backend.

cell_crud?

type Readonly<Record<string, string>>

readonly

cell_relations?

type Readonly<Record<string, string>>

readonly

cell_gated_create?

type Readonly<Record<string, string>>

readonly

fact_serving?

type Readonly<Record<string, string>>

readonly

ready?

type Readonly<Record<string, string>>

readonly

ws_role_gated?

type Readonly<Record<string, string>>

readonly

account_lifecycle?

type Readonly<Record<string, string>>

readonly

origin?

type Readonly<Record<string, string>>

readonly

actor_lookup?

type Readonly<Record<string, string>>

readonly

app_settings?

type Readonly<Record<string, string>>

readonly

body_size?

type Readonly<Record<string, string>>

readonly

body_size_smuggling?

type Readonly<Record<string, string>>

readonly

cell_grant_role?

type Readonly<Record<string, string>>

readonly

cell_grant_steward?

type Readonly<Record<string, string>>

readonly

cell_moderate?

type Readonly<Record<string, string>>

readonly

cell_ref_admission?

type Readonly<Record<string, string>>

readonly

cookie_attributes?

type Readonly<Record<string, string>>

readonly

credential_deadline?

type Readonly<Record<string, string>>

readonly

credential_header_robustness?

type Readonly<Record<string, string>>

readonly

identity_parity?

type Readonly<Record<string, string>>

readonly

origin_conformance?

type Readonly<Record<string, string>>

readonly

origin_scope?

type Readonly<Record<string, string>>

readonly

peer_ping_ws?

type Readonly<Record<string, string>>

readonly

query_shape?

type Readonly<Record<string, string>>

readonly

role_grant_offer_enumeration?

type Readonly<Record<string, string>>

readonly

role_grant_offer_lifecycle?

type Readonly<Record<string, string>>

readonly

role_grant_offer_notification_ws?

type Readonly<Record<string, string>>

readonly

role_grant_participation?

type Readonly<Record<string, string>>

readonly

role_grant_role_grammar?

type Readonly<Record<string, string>>

readonly

rpc_adversarial?

type Readonly<Record<string, string>>

readonly

session_cap?

type Readonly<Record<string, string>>

readonly

session_cookie_codec?

type Readonly<Record<string, string>>

readonly

simple_request?

type Readonly<Record<string, string>>

readonly

sse_round_trip?

type Readonly<Record<string, string>>

readonly

standard?

type Readonly<Record<string, string>>

readonly

testing_backdoor?

type Readonly<Record<string, string>>

readonly

token_lifetime?

type Readonly<Record<string, string>>

readonly

token_scope_surface?

type Readonly<Record<string, string>>

readonly

transport_composition?

type Readonly<Record<string, string>>

readonly

ws_connection_cap?

type Readonly<Record<string, string>>

readonly

ws_envelope?

type Readonly<Record<string, string>>

readonly

ws_inbound_dispatch?

type Readonly<Record<string, string>>

readonly

ws_outbound_overflow?

type Readonly<Record<string, string>>

readonly

ws_round_trip?

type Readonly<Record<string, string>>

readonly

SuiteName
#

testing/cross_backend/spine_suites.ts view source

"cell_crud" | "cell_relations" | "cell_gated_create" | "fact_serving" | "ready" | "ws_role_gated" | "account_lifecycle" | "origin" | "actor_lookup" | "app_settings" | "body_size" | ... 32 more ... | "ws_round_trip"

type "cell_crud" | "cell_relations" | "cell_gated_create" | "fact_serving" | "ready" | "ws_role_gated" | "account_lifecycle" | "origin" | "actor_lookup" | "app_settings" | "body_size" | "body_size_smuggling" | "cell_grant_role" | "cell_grant_steward" | "cell_moderate" | "cell_ref_admission" | "cookie_attributes" | "credential_deadline" | "credential_header_robustness" | "identity_parity" | "origin_conformance" | "origin_scope" | "peer_ping_ws" | "query_shape" | "role_grant_offer_enumeration" | "role_grant_offer_lifecycle" | "role_grant_offer_notification_ws" | "role_grant_participation" | "role_grant_role_grammar" | "rpc_adversarial" | "session_cap" | "session_cookie_codec" | "simple_request" | "sse_round_trip" | "standard" | "testing_backdoor" | "token_lifetime" | "token_scope_surface" | "transport_composition" | "ws_connection_cap" | "ws_envelope" | "ws_inbound_dispatch" | "ws_outbound_overflow" | "ws_round_trip"

import type {SuiteName} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

A shipped single-backend cross suite, named by its module.

SuiteOptionsMap
#

testing/cross_backend/spine_suites.ts view source

SuiteOptionsMap import type {SuiteOptionsMap} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

The options each suite takes, by SuiteName — what overrides entries are partials of.

account_lifecycle

type RpcPathCapabilityGatedCrossSuiteOptions

actor_lookup

type RpcPathCrossSuiteOptions

app_settings

type RpcPathCrossSuiteOptions

body_size

type BodySizeCrossTestOptions

body_size_smuggling

type BodySizeSmugglingCrossTestOptions

cell_crud

type RpcPathCapabilityGatedCrossSuiteOptions

cell_gated_create

type RpcPathCapabilityGatedCrossSuiteOptions

cell_grant_role

type CellGrantRoleCrossTestOptions

cell_grant_steward

type RpcPathCapabilityGatedCrossSuiteOptions

cell_moderate

type RpcPathCapabilityGatedCrossSuiteOptions

cell_ref_admission

type RpcPathCapabilityGatedCrossSuiteOptions

cell_relations

type RpcPathCapabilityGatedCrossSuiteOptions

cookie_attributes

type CookieAttributesCrossTestOptions

credential_deadline

type CredentialDeadlineCrossTestOptions

credential_header_robustness

type CredentialHeaderRobustnessCrossTestOptions

fact_serving

type FactServingCrossTestOptions

identity_parity

type IdentityParityCrossTestOptions

origin

type RpcPathCrossSuiteOptions

origin_conformance

type RpcPathCrossSuiteOptions

origin_scope

type OriginScopeCrossTestOptions

peer_ping_ws

type PeerPingWsTestOptions

query_shape

type RpcPathCapabilityGatedCrossSuiteOptions

ready

type ReadyCrossTestOptions

role_grant_offer_enumeration

type RoleGrantOfferEnumerationCrossTestOptions

role_grant_offer_lifecycle

type RoleGrantOfferLifecycleCrossTestOptions

role_grant_offer_notification_ws

type RoleGrantOfferNotificationWsTestOptions

role_grant_participation

type RoleGrantParticipationCrossTestOptions

role_grant_role_grammar

type RpcPathCrossSuiteOptions

rpc_adversarial

type RpcAdversarialCrossTestOptions

session_cap

type SessionCapCrossTestOptions

session_cookie_codec

type SessionCookieCodecCrossTestOptions

simple_request

type SimpleRequestCrossTestOptions

sse_round_trip

type CrossProcessSseTestOptions

standard

type StandardCrossProcessTestOptions

testing_backdoor

type TestingBackdoorCrossTestOptions

token_lifetime

type TokenLifetimeCrossTestOptions

token_scope_surface

type TokenScopeSurfaceCrossTestOptions

transport_composition

type TransportCompositionCrossTestOptions

ws_connection_cap

type WsConnectionCapCrossTestOptions

ws_envelope

type WsEnvelopeCrossTestOptions

ws_inbound_dispatch

type WsInboundDispatchCrossTestOptions

ws_outbound_overflow

type WsOutboundOverflowCrossTestOptions

ws_role_gated

type WsRoleGatedCrossTestOptions

ws_round_trip

type CrossProcessWsTestOptions

SuiteOverride
#

testing/cross_backend/spine_suites.ts view source

SuiteOverride<K>

type Partial<SuiteOptionsMap[K]> | ((derived: SuiteOptionsMap[K]) => Partial<SuiteOptionsMap[K]>)

import type {SuiteOverride} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

One suite's override: options shallow-merged over the ones the handle gives, or a function of those derived options returning them — for a change that builds on a derived value (a seeded setup_test, the capabilities) rather than restating it.

generics

SuiteOverride<K extends SuiteName>
K
constraint SuiteName

SuiteOverrides
#

testing/cross_backend/spine_suites.ts view source

SuiteOverrides import type {SuiteOverrides} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

Per-suite option overrides, each merged over the options the handle gives.

cell_crud?

type SuiteOverride

readonly

cell_relations?

type SuiteOverride

readonly

cell_gated_create?

type SuiteOverride

readonly

fact_serving?

type SuiteOverride

readonly

ready?

type SuiteOverride

readonly

ws_role_gated?

type SuiteOverride

readonly

account_lifecycle?

type SuiteOverride

readonly

origin?

type SuiteOverride

readonly

actor_lookup?

type SuiteOverride

readonly

app_settings?

type SuiteOverride

readonly

body_size?

type SuiteOverride

readonly

body_size_smuggling?

type SuiteOverride

readonly

cell_grant_role?

type SuiteOverride

readonly

cell_grant_steward?

type SuiteOverride

readonly

cell_moderate?

type SuiteOverride

readonly

cell_ref_admission?

type SuiteOverride

readonly

cookie_attributes?

type SuiteOverride

readonly

credential_deadline?

type SuiteOverride

readonly

credential_header_robustness?

type SuiteOverride

readonly

identity_parity?

type SuiteOverride

readonly

origin_conformance?

type SuiteOverride

readonly

origin_scope?

type SuiteOverride

readonly

peer_ping_ws?

type SuiteOverride

readonly

query_shape?

type SuiteOverride

readonly

role_grant_offer_enumeration?

type SuiteOverride

readonly

role_grant_offer_lifecycle?

type SuiteOverride

readonly

role_grant_offer_notification_ws?

type SuiteOverride

readonly

role_grant_participation?

type SuiteOverride

readonly

role_grant_role_grammar?

type SuiteOverride

readonly

rpc_adversarial?

type SuiteOverride

readonly

session_cap?

type SuiteOverride

readonly

session_cookie_codec?

type SuiteOverride

readonly

simple_request?

type SuiteOverride

readonly

sse_round_trip?

type SuiteOverride

readonly

standard?

type SuiteOverride

readonly

testing_backdoor?

type SuiteOverride

readonly

token_lifetime?

type SuiteOverride

readonly

token_scope_surface?

type SuiteOverride

readonly

transport_composition?

type SuiteOverride

readonly

ws_connection_cap?

type SuiteOverride

readonly

ws_envelope?

type SuiteOverride

readonly

ws_inbound_dispatch?

type SuiteOverride

readonly

ws_outbound_overflow?

type SuiteOverride

readonly

ws_round_trip?

type SuiteOverride

readonly

SuiteTaskRange
#

testing/cross_backend/spine_suites.ts view source

SuiteTaskRange import type {SuiteTaskRange} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

The top-level tasks one suite registered, as indices into the calling suite's tasks.

name

type SuiteName

readonly

start

type number

readonly

end

type number

readonly

to_cross_suite_options
#

testing/cross_backend/spine_suites.ts view source

(handle: Pick<ReconstructedBootstrappedBackendHandle, "config">): CrossSuiteHandleOptions import {to_cross_suite_options} from '@fuzdev/fuz_app/testing/cross_backend/spine_suites.js';

The suite options a handle's config supplies — the fields most cross suites take beside setup_test. For a suite called on its own: describe_ready_cross_tests({setup_test, ...to_cross_suite_options(handle)}) passes extra fields the suite's type doesn't list, so destructure what it takes instead when calling it with an object literal.

handle

returns

CrossSuiteHandleOptions

Depends on
#