ci/woodpecker/push/woodpecker Pipeline was successful
Co-authored-by: HiFox Agent <agents-noreply@hifox.com>
19 lines
721 B
TypeScript
19 lines
721 B
TypeScript
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/,
|
|
);
|
|
}
|
|
});
|