fix: execute mit optionalen Params, release(error) bei reset-Fehler, Tests ergänzt

This commit is contained in:
2026-04-17 08:35:31 +00:00
parent 4f739f7b1e
commit 3c3088e66b
2 changed files with 33 additions and 7 deletions

View File

@@ -62,6 +62,27 @@ describe('withTenant', () => {
await withTenant('abc123', async (client) => {
await client.execute('DELETE FROM sessions WHERE expired = true')
})
expect(mockClient.query).toHaveBeenCalledWith('DELETE FROM sessions WHERE expired = true')
expect(mockClient.query).toHaveBeenCalledWith('DELETE FROM sessions WHERE expired = true', undefined)
})
it('execute akzeptiert optionale Parameter', async () => {
await withTenant('abc123', async (client) => {
await client.execute('UPDATE t SET x = $1 WHERE id = $2', ['v', '1'])
})
expect(mockClient.query).toHaveBeenCalledWith('UPDATE t SET x = $1 WHERE id = $2', ['v', '1'])
})
it('zerstört Verbindung bei search_path-Reset-Fehler (kein Recycling)', async () => {
mockClient.query
.mockResolvedValueOnce({ rows: [] }) // SET search_path = tenant_...
.mockResolvedValueOnce({ rows: [] }) // fn-query
.mockRejectedValueOnce(new Error('reset-fehler')) // SET search_path = public schlägt fehl
await withTenant('abc123', async (client) => {
await client.query('SELECT 1', [])
})
// release() muss mit Error aufgerufen worden sein (Verbindung zerstört, nicht recycelt)
expect(mockClient.release).toHaveBeenCalledWith(expect.any(Error))
})
})