testing/cross_backend/cell_grant_steward.ts

Cross-backend parity suite for the steward-revoke seam (CellGrantRevokeAuthorize) on cell_grant_revoke.

Like the creation authorizer, the revoke hook adds no method, column, or wire shape, so the schema-snapshot and action-manifest parity gates are blind to a TS↔Rust divergence in it — the fence, the refusal shape, the audit stamp. This behavioral case is the gate that catches one.

Both spines mount the same test policy (the TS spine binary via test_cell_grant_steward_revoke_authorize, the Rust testing_spine_stub via TestCellGrantStewardRevokeAuthorize): a scoped participant grant stewards its scope. A cell owner shares a private cell with participant at a scope; the suite asserts every spine agrees on:

  • the scope's steward revokes — a non-manager holding participant at the grant's scope revokes it: {ok: true, still_admitted: false}, the grant gone from the owner's list, and the cell_grant_revoke audit row stamped steward: true.
  • another scope's steward gets the 404 mask — cell_grant_not_found, the same refusal as no hook, and the grant stays.
  • a scopeless role grant is fenced off — a caller holding participant globally *and* at a scope still gets the 404 on a grant naming no scope: the spine never asks the hook, which would have admitted the global grant had it been asked with a null scope.

Gated on capabilities.cell_relations (the grant verbs) and capabilities.cell_gated_create (the reference spines' test cell policies, which this one rides beside). The hook's in-process coverage, including the manager, self-revoke, actor-shaped and deleted-cell fences, is auth/cell_grant_actions.authz.db.test.ts.

view source

Declarations
#

describe_cell_grant_steward_cross_tests
#

Depends on
#

Imported by
#