feat: migrate auth and state flows to better-auth and convex
This commit is contained in:
59
test/convex-state-store.test.js
Normal file
59
test/convex-state-store.test.js
Normal file
@@ -0,0 +1,59 @@
|
||||
"use strict";
|
||||
|
||||
const test = require("node:test");
|
||||
const assert = require("node:assert/strict");
|
||||
const { ConvexStateStore } = require("../src/lib/convex-state-store");
|
||||
|
||||
test("load returns null when convex query returns null", async () => {
|
||||
const store = new ConvexStateStore({
|
||||
client: {
|
||||
async query() {
|
||||
return null;
|
||||
},
|
||||
async mutation() {},
|
||||
},
|
||||
});
|
||||
|
||||
const state = await store.load();
|
||||
assert.equal(state, null);
|
||||
});
|
||||
|
||||
test("load unwraps snapshot envelope payload", async () => {
|
||||
const store = new ConvexStateStore({
|
||||
client: {
|
||||
async query(functionName) {
|
||||
assert.equal(functionName, "state:getLatestSnapshot");
|
||||
return {
|
||||
snapshot: { engine: { jobs: [] } },
|
||||
};
|
||||
},
|
||||
async mutation() {},
|
||||
},
|
||||
});
|
||||
|
||||
const state = await store.load();
|
||||
assert.deepEqual(state, { engine: { jobs: [] } });
|
||||
});
|
||||
|
||||
test("save writes state to configured mutation function", async () => {
|
||||
const calls = [];
|
||||
const store = new ConvexStateStore({
|
||||
writeFunction: "state:saveSnapshot",
|
||||
client: {
|
||||
async query() {
|
||||
return null;
|
||||
},
|
||||
async mutation(functionName, args) {
|
||||
calls.push({ functionName, args });
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
const state = { version: 1 };
|
||||
await store.save(state);
|
||||
|
||||
assert.equal(calls.length, 1);
|
||||
assert.equal(calls[0].functionName, "state:saveSnapshot");
|
||||
assert.deepEqual(calls[0].args.snapshot, state);
|
||||
assert.match(String(calls[0].args.updatedAt), /^\d{4}-\d{2}-\d{2}T/);
|
||||
});
|
||||
Reference in New Issue
Block a user