From da300bfb48a34a2296d5956524f20bb62e0bb544 Mon Sep 17 00:00:00 2001 From: EmaToplek Date: Thu, 17 Sep 2026 23:25:39 +0200 Subject: [PATCH] test: add coverage for checkSqlDefaultBody Signed-off-by: EmaToplek --- .../contract/test/default-sql-body.test.ts | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/2-sql/1-core/contract/test/default-sql-body.test.ts b/packages/2-sql/1-core/contract/test/default-sql-body.test.ts index d555dcd06c31..5a64d504defa 100644 --- a/packages/2-sql/1-core/contract/test/default-sql-body.test.ts +++ b/packages/2-sql/1-core/contract/test/default-sql-body.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest'; -import { reservedSqlDefaultBody } from '../src/default-sql-body'; +import { checkSqlDefaultBody, reservedSqlDefaultBody } from '../src/default-sql-body'; describe('reservedSqlDefaultBody', () => { it.each([ @@ -23,3 +23,22 @@ describe('reservedSqlDefaultBody', () => { expect(reservedSqlDefaultBody(body)).toBeUndefined(); }); }); + +describe('checkSqlDefaultBody', () => { + it('returns undefined for a safe body with no unsafe tokens', () => { + expect(checkSqlDefaultBody('now()')).toBeUndefined(); + }); + + it.each([ + ['id = 1; DROP TABLE users'], + ['1 -- comment'], + ['/* comment */ 1'], + ['$$ dollar quoted $$'], + ['SELECT 1'], + ['select 1'], + ])('flags %j as unsafe', (body) => { + expect(checkSqlDefaultBody(body)).toBe( + 'Default SQL must not contain semicolons, SQL comment tokens, dollar-quoting, or subqueries.', + ); + }); +});