From f7a00fe43b7d9b74764998b78c26a429a488a017 Mon Sep 17 00:00:00 2001 From: Vegard Stikbakke Date: Fri, 14 Aug 2026 11:12:20 +0200 Subject: [PATCH] fix: isolate incomplete SQLite conformance job --- .github/workflows/ci.yml | 19 +++++++++++++++++++ .../session-backends/sqlite-node/package.json | 5 +++-- .../test/storage-conformance.test.ts | 11 +---------- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ce0cfef9e..0dbeac42c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,3 +40,22 @@ jobs: - name: Test run: npm test + + sqlite-conformance: + runs-on: ubuntu-latest + continue-on-error: true + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + + - name: Setup Node.js + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + with: + node-version: 22 + cache: npm + + - name: Install dependencies + run: npm ci --ignore-scripts + + - name: Test SQLite conformance + run: npm run test:conformance --workspace=@earendil-works/pi-session-backend-sqlite-node diff --git a/packages/session-backends/sqlite-node/package.json b/packages/session-backends/sqlite-node/package.json index a52d9fa67..84e4cef0d 100644 --- a/packages/session-backends/sqlite-node/package.json +++ b/packages/session-backends/sqlite-node/package.json @@ -19,8 +19,9 @@ "scripts": { "clean": "node -e \"import('node:fs/promises').then(fs=>fs.rm('dist',{recursive:true,force:true}))\"", "build": "tsgo -p tsconfig.build.json && node scripts/copy-migrations.mjs", - "test": "vitest --run", - "coverage": "vitest --run --coverage", + "test": "vitest --run --exclude test/storage-conformance.test.ts", + "test:conformance": "vitest --run test/storage-conformance.test.ts", + "coverage": "vitest --run --coverage --exclude test/storage-conformance.test.ts", "prepublishOnly": "npm run clean && npm run build" }, "author": "Earendil Works", diff --git a/packages/session-backends/sqlite-node/test/storage-conformance.test.ts b/packages/session-backends/sqlite-node/test/storage-conformance.test.ts index 34054e66f..6104a4c2b 100644 --- a/packages/session-backends/sqlite-node/test/storage-conformance.test.ts +++ b/packages/session-backends/sqlite-node/test/storage-conformance.test.ts @@ -17,21 +17,12 @@ const EMPTY_USAGE = { cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 }, }; -// Re-enable each case as the work-in-progress backend implements the missing contract behavior. -const DISABLED_CASES = new Set([ - "transactions/rolls back every store when a mixed transaction fails", - "transactions/enforces one shared entry and usage id namespace", - "branch queries/applies stops before filters and cursors before limits", - "lifecycle/seals admission, drains admitted commits, and closes idempotently", -]); - function registerConformance(name: string, cases: readonly ConformanceCase[]): void { describe(name, () => { for (const group of new Set(cases.map((testCase) => testCase.group))) { describe(group, () => { for (const testCase of cases.filter((candidate) => candidate.group === group)) { - const register = DISABLED_CASES.has(`${group}/${testCase.name}`) ? it.skip : it; - register(testCase.name, () => testCase.run()); + it(testCase.name, () => testCase.run()); } }); }