Heimdall/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 8541ae3f2f Startup proves the database can take Heimdall's writes
Soul pass 4, F4: the startup check passed on databases where every request
still failed: a role granted SELECT only (O2), and a table whose primary
key and key column were dropped (N), including on a start that applied the
schema, since CREATE ... IF NOT EXISTS leaves a damaged table as it is.

Every start now ends in checkSchema, after applying the schema or not. It
requires, read from the schema SQL: every relation; every column the
created tables declare, not only the added one (read from pg_attribute, so
a column the role may not see is not reported as missing); every primary
key and unique constraint as a non-partial unique index on exactly its
columns, which is what the store's ON CONFLICT clauses and the foreign
keys rely on; and SELECT, INSERT and UPDATE on every table. A missing
piece refuses with SCHEMA_MISSING, a missing privilege with
SCHEMA_PRIVILEGES, through the same fixed startup message.

A live-Postgres block drives createStore itself, skipped unless
HEIMDALL_TEST_PG_ADMIN_URL names a role that may create databases and
roles: a read-only role (and its canary password stays out of the
message), a dropped primary key with and without applying, a unique key
replaced by a partial one, and a dropped column.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 17:15:34 +02:00
..
access-plugin.test.ts Tests/docs: promote Soul's two it.fails, update the tripwire and fixtures 2026-09-08 14:23:04 +02:00
app.test.ts Patron support sync keeps Bifrost's answer by status alone 2026-09-30 17:08:29 +02:00
browser-adapter.test.ts Resume browser sign-in by attempt id, not the completion code 2026-09-23 20:50:28 +02:00
caller-identity-attack-soul-r21.test.ts Close the three one-line holes Soul left as follow-ups 2026-09-08 15:08:38 +02:00
caller-identity-attack-soul.test.ts Narrow the built-in profile lookup so the branch typechecks 2026-09-08 14:54:17 +02:00
caller-identity-soul.test.ts Tests/docs: promote Soul's two it.fails, update the tripwire and fixtures 2026-09-08 14:23:04 +02:00
capability-rules.test.ts Make app capability rules data instead of code 2026-09-06 23:58:58 +02:00
config-secrets.test.ts readSecretInput: never print the path, refuse relative paths and blank secrets 2026-09-30 13:50:53 +02:00
entrypoint-secrets.test.ts Every start connects to Postgres; pin the signing key's read refusal 2026-09-30 15:30:10 +02:00
idunn-candidate-bind.test.ts Move the private command port with the candidate 2026-09-06 22:15:34 +02:00
idunn-rudp-health.test.ts Publish runtime presence in the contract Odin admits 2026-09-07 22:19:51 +02:00
odin-publication.test.ts Give Heimdall Odin documents unique catalog keys 2026-08-22 03:47:02 +02:00
presence-identity-descriptor.test.ts Assert descriptor selection instead of reading a live descriptor 2026-09-08 13:52:47 +02:00
private-command-diagnostics.test.ts Private command diagnostics carry class and code, never a message 2026-09-30 17:07:16 +02:00
process-write-lease.test.ts Follow CultLib's package rename and select workspaces by path 2026-09-07 22:26:24 +02:00
recipe-secrets.test.ts Recipe test observes the secrets loadConfig reads 2026-09-30 17:09:20 +02:00
security.test.ts Pin the token-key length refusal custody now relies on 2026-09-30 14:03:24 +02:00
store.test.ts Startup proves the database can take Heimdall's writes 2026-09-30 17:15:34 +02:00
verse-runtime.test.ts Retire the Spotiverse profile; keep the spotify provider intact for restore 2026-09-06 01:47:10 +02:00
verse-witness.test.ts Retire the Spotiverse profile; keep the spotify provider intact for restore 2026-09-06 01:47:10 +02:00