sin-code-database / test /supabase_saver.test.mjs
GitHub Actions
Deploy SIN-Code-Database from GitHub Actions
720c6ed
Raw
History Blame Contribute Delete
1.48 kB
import assert from 'node:assert/strict';
import test from 'node:test';
import { randomUUID } from 'node:crypto';
const DIST_ROOT = new URL('../dist/src/', import.meta.url);
async function importFresh(relativePath) {
return import(new URL(`${relativePath}?t=${Date.now()}-${Math.random()}`, DIST_ROOT).href);
}
test('SupabaseSaver can be imported and initialized without crashing', async () => {
const { SupabaseSaver } = await importFresh('./agent/SupabaseSaver.js');
const saver = new SupabaseSaver();
assert.ok(saver);
assert.equal(typeof saver.getTuple, 'function');
assert.equal(typeof saver.put, 'function');
});
test('createAgentGraph wires SupabaseSaver successfully or falls back cleanly', async () => {
const { createAgentGraph } = await importFresh('./agent/graph.js');
// Default instantiation handles missing env vars without throwing unhandled exceptions
// because the Supabase client logic handles it or createAgentGraph catches it
const graph = createAgentGraph();
assert.ok(graph);
// Can explicitly configure checkpointer
const customGraph = createAgentGraph({ checkpointer: null });
assert.ok(customGraph);
});
test('createAgentGraph supports interruptBefore for Human-in-the-loop', async () => {
const { createAgentGraph } = await importFresh('./agent/graph.js');
const graph = createAgentGraph({ requireApproval: true, checkpointer: null });
assert.ok(graph);
// Internally this sets interruptBefore: ['tools']
});