Initial Commit
This commit is contained in:
34
packages/api-stack/api/api-saga/tests/setup/saga-schema.ts
Normal file
34
packages/api-stack/api/api-saga/tests/setup/saga-schema.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
// Test helper — apply the saga table DDL that production gets from
|
||||
// @suaveplan/api-host migration 2. Inlined here so the test suite
|
||||
// doesn't have to pull api-host's full module graph.
|
||||
|
||||
import type { LedgerDb } from "../../src/persistence/persistence.types.js";
|
||||
|
||||
const INSTANCES_DDL = `
|
||||
CREATE TABLE IF NOT EXISTS suaveplan_saga_instances (
|
||||
id TEXT PRIMARY KEY,
|
||||
plugin_name TEXT NOT NULL,
|
||||
state TEXT NOT NULL,
|
||||
payload_json TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL
|
||||
)
|
||||
`;
|
||||
|
||||
const STEPS_DDL = `
|
||||
CREATE TABLE IF NOT EXISTS suaveplan_saga_steps (
|
||||
saga_id TEXT NOT NULL,
|
||||
step_index INTEGER NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
state TEXT NOT NULL,
|
||||
compensation_payload_json TEXT,
|
||||
completed_at TEXT,
|
||||
PRIMARY KEY (saga_id, step_index)
|
||||
)
|
||||
`;
|
||||
|
||||
/** Apply the saga DDL to a fresh in-memory ledger DB handle. */
|
||||
export function applySagaSchema(db: LedgerDb): void {
|
||||
db.run(INSTANCES_DDL);
|
||||
db.run(STEPS_DDL);
|
||||
}
|
||||
Reference in New Issue
Block a user