import {test} from 'node:test';import assert from 'node:assert/strict';import {PGlite} from '@electric-sql/pglite';import {readFileSync,existsSync} from 'node:fs'; const file=new URL('../sql/read-revisions.sql',import.meta.url); test('revisions follow insert/update/delete/tenant moves and rollback across all source writers',async()=>{ assert.ok(existsSync(file),'revision migration exists');const db=new PGlite(); try{ await db.exec('CREATE TABLE "LessonRecord"(company text,id int);CREATE TABLE "_User"(company text,id int);'); await db.exec(readFileSync(file,'utf8')); const version=async co=>(await db.query('SELECT xs_read_version($1,$2) v',[co,'lessons'])).rows[0].v; const initial=await version('a');await db.exec("INSERT INTO \"LessonRecord\" VALUES('a',1),('a',2)");assert.notEqual(await version('a'),initial); const before=await version('a');await db.exec("BEGIN;UPDATE \"LessonRecord\" SET id=3;ROLLBACK");assert.equal(await version('a'),before); await db.exec("UPDATE \"LessonRecord\" SET company='b' WHERE id=1");assert.notEqual(await version('a'),before);assert.notEqual(await version('b'),'0'); const b=await version('b');await db.exec("DELETE FROM \"LessonRecord\" WHERE company='b'");assert.notEqual(await version('b'),b); const a=await version('a');await db.exec("UPDATE \"_User\" SET id=2");assert.equal(await version('a'),a); await db.exec("INSERT INTO \"_User\" VALUES('a',10)");assert.notEqual(await version('a'),a); const last=await version('a');await db.exec('TRUNCATE "LessonRecord"');assert.notEqual(await version('a'),last); const stable=await version('a');await db.exec('SELECT xs_prune_read_revisions()');assert.equal(await version('a'),stable); await db.exec(readFileSync(file,'utf8'));assert.equal(typeof await version('a'),'string'); }finally{await db.close();} });