fix: sql guard gaps, date tz, timeouts, payload

This commit is contained in:
smartass
2026-06-12 01:37:15 +05:00
parent 783e5bc5b9
commit 1fecb1cce4
14 changed files with 237 additions and 10 deletions
+15
View File
@@ -101,6 +101,21 @@ describe('mysql integration', () => {
expect(result.rows[0][0]).toBe('9007199254740993')
})
it('returns DATE and DATETIME as strings, no tz day-shift', async () => {
const { driver } = await db().get('my')
await driver.query({
sql: 'CREATE TABLE events (id int AUTO_INCREMENT PRIMARY KEY, day date, at datetime)',
rowLimit: 10
})
await driver.query({
sql: "INSERT INTO events (day, at) VALUES ('2026-06-11', '2026-06-11 12:34:56')",
rowLimit: 10
})
const result = await driver.query({ sql: 'SELECT day, at FROM events', rowLimit: 10 })
expect(result.rows[0][0]).toBe('2026-06-11')
expect(result.rows[0][1]).toBe('2026-06-11 12:34:56')
})
it('rejects multi-statement and session-level sql', async () => {
const { driver } = await db().get('my')
await expect(driver.query({ sql: 'SELECT 1; SELECT 2', rowLimit: 10 })).rejects.toThrow(
+28
View File
@@ -86,6 +86,34 @@ describe('postgres integration', () => {
expect(select.rows).toEqual([['ada']])
})
it('returns DATE columns as the stored calendar day, no tz shift', async () => {
const { driver } = await db().get('pg')
await driver.query({
sql: 'CREATE TABLE events (id serial PRIMARY KEY, day date NOT NULL)',
rowLimit: 10
})
await driver.query({
sql: "INSERT INTO events (day) VALUES ('2026-06-11')",
rowLimit: 10
})
const result = await driver.query({ sql: 'SELECT day FROM events', rowLimit: 10 })
expect(result.rows).toEqual([['2026-06-11']])
})
it('returns TIMESTAMP without tz as a wall-clock string', async () => {
const { driver } = await db().get('pg')
await driver.query({
sql: 'CREATE TABLE moments (id serial PRIMARY KEY, at timestamp NOT NULL)',
rowLimit: 10
})
await driver.query({
sql: "INSERT INTO moments (at) VALUES ('2026-06-11 12:34:56')",
rowLimit: 10
})
const result = await driver.query({ sql: 'SELECT at FROM moments', rowLimit: 10 })
expect(result.rows[0][0]).toBe('2026-06-11 12:34:56')
})
it('truncates SELECT results at rowLimit', async () => {
const { driver } = await db().get('pg')
const result = await driver.query({