import assert from 'node:assert/strict'; import test from 'node:test'; import { assertHydrogenReadOnlySql } from './hydrogen-read-only.js'; test('只读模式允许查询语句', () => { for (const sql of ['SELECT 1', ' SHOW TABLES', 'WITH rows AS (SELECT 1) SELECT * FROM rows', 'EXPLAIN SELECT 1']) { assert.doesNotThrow(() => assertHydrogenReadOnlySql(sql, true)); } }); test('只读模式拒绝数据库写入语句', () => { for (const sql of ['INSERT INTO ledger VALUES (1)', 'UPDATE ledger SET value = 1', 'DELETE FROM ledger', 'ALTER TABLE ledger ADD value INT']) { assert.throws( () => assertHydrogenReadOnlySql(sql, true), /HYDROGEN_DB_READ_ONLY blocks non-read SQL/, ); } });