test: fix import integration cleanup

This commit is contained in:
2026-08-20 08:47:53 +03:00
parent 1b20b76704
commit 3d7d0e639c
3 changed files with 14 additions and 11 deletions

View File

@@ -1,5 +1,11 @@
# Changelog
## [Backend 0.7.4] - 2026-08-20
### Fixed
- Corrected database integration test connection ownership during repeated imports.
## [Backend 0.7.3] - 2026-08-20
### Added

View File

@@ -1,6 +1,6 @@
{
"name": "@family-budget/backend",
"version": "0.7.3",
"version": "0.7.4",
"private": true,
"scripts": {
"dev": "tsx watch src/app.ts",

View File

@@ -9,21 +9,18 @@ const makeStatement = (sourceId: string) => ({
});
async function run(): Promise<void> {
const client = await pool.connect();
try {
const db = { connect: async () => client };
await importStatement(makeStatement('first'), db);
const account = await client.query("UPDATE accounts SET account_type = 'savings', status = 'closed' WHERE bank = 'TEST' AND account_number = 'metadata-test' RETURNING id");
await importStatement(makeStatement('first'));
const account = await pool.query("UPDATE accounts SET account_type = 'savings', status = 'closed' WHERE bank = 'TEST' AND account_number = 'metadata-test' RETURNING id");
assert.equal(account.rows.length, 1);
await importStatement(makeStatement('second'), db);
const result = await client.query('SELECT account_type, status FROM accounts WHERE id = $1', [account.rows[0].id]);
await importStatement(makeStatement('second'));
const result = await pool.query('SELECT account_type, status FROM accounts WHERE id = $1', [account.rows[0].id]);
assert.deepEqual(result.rows[0], { account_type: 'savings', status: 'closed' });
console.log('import metadata SQL: OK');
} finally {
await client.query('DELETE FROM transactions WHERE account_id IN (SELECT id FROM accounts WHERE bank = \'TEST\' AND account_number = \'metadata-test\')');
await client.query("DELETE FROM imports WHERE account_id IN (SELECT id FROM accounts WHERE bank = 'TEST' AND account_number = 'metadata-test')");
await client.query("DELETE FROM accounts WHERE bank = 'TEST' AND account_number = 'metadata-test'");
client.release();
await pool.query('DELETE FROM transactions WHERE account_id IN (SELECT id FROM accounts WHERE bank = \'TEST\' AND account_number = \'metadata-test\')');
await pool.query("DELETE FROM imports WHERE account_id IN (SELECT id FROM accounts WHERE bank = 'TEST' AND account_number = 'metadata-test')");
await pool.query("DELETE FROM accounts WHERE bank = 'TEST' AND account_number = 'metadata-test'");
await pool.end();
}
}