28 lines
847 B
TypeScript
Executable File
28 lines
847 B
TypeScript
Executable File
import { Pool } from 'pg';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
|
|
export const testPool = new Pool({
|
|
host: process.env.TEST_PGHOST || 'localhost',
|
|
port: parseInt(process.env.TEST_PGPORT || '55432', 10),
|
|
user: process.env.TEST_PGUSER || 'redefined_test',
|
|
password: process.env.TEST_PGPASSWORD || 'redefined_test',
|
|
database: process.env.TEST_PGDATABASE || 'redefined_test'
|
|
});
|
|
|
|
export async function migrate(): Promise<void> {
|
|
const sql = fs.readFileSync(path.join(__dirname, '..', '..', '..', 'init.sql'), 'utf-8');
|
|
await testPool.query(sql);
|
|
}
|
|
|
|
export async function resetDb(): Promise<void> {
|
|
await testPool.query(`
|
|
TRUNCATE TABLE orders, customer_tokens, customer_sessions, customers, item_images, items
|
|
RESTART IDENTITY CASCADE
|
|
`);
|
|
}
|
|
|
|
export async function closeDb(): Promise<void> {
|
|
await testPool.end();
|
|
}
|