console/integration-tests/testkit/db.ts

26 lines
661 B
TypeScript
Raw Normal View History

2022-08-11 08:58:36 +00:00
import { sql, DatabasePoolConnection } from 'slonik';
2022-05-18 07:26:57 +00:00
2022-08-11 08:58:36 +00:00
export const resetDb = async (conn: DatabasePoolConnection) => {
2022-05-18 07:26:57 +00:00
const migrationTables = ['migrations'];
const result = await conn.many<{ tablename: string }>(sql`
SELECT "tablename"
FROM "pg_tables"
WHERE "schemaname" = 'public';
`);
const tablenames = result.map(({ tablename }) => tablename).filter(tablename => !migrationTables.includes(tablename));
2022-05-18 07:26:57 +00:00
if (tablenames.length) {
await conn.query(sql`
TRUNCATE TABLE
${sql.join(
tablenames.map(name => sql.identifier([name])),
2022-05-18 07:26:57 +00:00
sql`,`
)}
RESTART IDENTITY
;
`);
}
};