import assert from "node:assert/strict"; import { openAgentRunStoreFromEnv } from "../../mgr/store.js"; import { postgresMigrationContract } from "../../mgr/postgres-store.js"; import { redactText } from "../../common/redaction.js"; import { AgentRunError } from "../../common/errors.js"; import type { SelfTestCase } from "../harness.js"; const selfTest: SelfTestCase = async () => { assert.equal(redactText("Authorization: Bearer abc123"), "Authorization: Bearer REDACTED"); assert.equal(redactText('{"token":"test-token-material"}').includes("test-token-material"), false); await assert.rejects( () => openAgentRunStoreFromEnv({}), (error) => error instanceof AgentRunError && error.failureKind === "infra-failed" && error.message.includes("DATABASE_URL is required"), ); const postgresContract = postgresMigrationContract(); assert.equal(postgresContract.latestMigrationId, "008_v01_dsflash_go_backend_profile"); assert.equal((postgresContract.migrationIds as string[]).includes("008_v01_dsflash_go_backend_profile"), true); assert.ok(typeof (postgresContract.checksums as Record)["008_v01_dsflash_go_backend_profile"] === "string" && (postgresContract.checksums as Record)["008_v01_dsflash_go_backend_profile"].length > 0); assert.equal((postgresContract.checksums as Record)["002_v01_backend_profiles"], "928b5c490cc4539cb64ecef34784557601b2724fa2870570f16a53576804e49c"); assert.ok(Array.isArray(postgresContract.requiredTables)); assert.ok(postgresContract.requiredTables.includes("agentrun_schema_migrations")); assert.ok(postgresContract.requiredTables.includes("agentrun_runs")); assert.ok(postgresContract.requiredTables.includes("agentrun_events")); assert.ok(postgresContract.requiredTables.includes("agentrun_sessions")); assert.ok(postgresContract.requiredTables.includes("agentrun_runner_jobs")); assert.ok(postgresContract.requiredTables.includes("agentrun_queue_tasks")); assert.ok(postgresContract.requiredTables.includes("agentrun_queue_read_cursors")); return { name: "redaction-postgres", tests: ["redaction", "postgres-store-contract"] }; }; export default selfTest;