UNPKG

@coko/server

Version:

Reusable server for use by Coko's projects

47 lines 1.5 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const db_1 = __importDefault(require("./db")); const config_1 = __importDefault(require("../configManager/config")); const env_1 = require("../utils/env"); const nodeEnv = (0, env_1.env)('NODE_ENV'); class DbTestUtils { static checkEnv() { if (nodeEnv !== 'test') { throw new Error('DbTestUtils should only be used in test environments!'); } } static async dropAllTables() { DbTestUtils.checkEnv(); await db_1.default.raw(` DROP SCHEMA IF EXISTS public CASCADE; CREATE SCHEMA public; GRANT ALL ON SCHEMA public TO "${config_1.default.get('db.user')}"; GRANT ALL ON SCHEMA public TO public; `); } static async clearDb() { DbTestUtils.checkEnv(); await db_1.default.raw(` DO $$ DECLARE tabname text; BEGIN FOR tabname IN SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND tablename NOT IN ('migrations', 'coko_server_meta') LOOP EXECUTE format('TRUNCATE TABLE %I.%I RESTART IDENTITY CASCADE;', 'public', tabname); END LOOP; END; $$; `); } } exports.default = DbTestUtils; //# sourceMappingURL=DbTestUtils.js.map