From 2d85523e1bea61b71bfebb86b8db51ebba3bca64 Mon Sep 17 00:00:00 2001 From: ksjaay Date: Mon, 13 May 2024 00:49:30 +0100 Subject: [PATCH] Adds function to setup test database --- test/shared/setupDatabase.js | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 test/shared/setupDatabase.js diff --git a/test/shared/setupDatabase.js b/test/shared/setupDatabase.js new file mode 100644 index 0000000..29ea54e --- /dev/null +++ b/test/shared/setupDatabase.js @@ -0,0 +1,39 @@ +// import dependencies +import fs from 'fs'; + +// import local files +import { SQLite } from '../../server/database/sqlite/setup.js'; +import { generateHash } from '../../server/utils/hashPassword.js'; +import logger from '../../server/utils/logger.js'; +import { loadJSON } from '../../shared/parseJson.js'; + +const loginDetails = loadJSON('../test/e2e/setup/fixtures/login.json'); + +const setupDatabase = async () => { + if (fs.existsSync(`${process.cwd()}/server/database/sqlite/e2e-test.db`)) { + fs.unlinkSync(`${process.cwd()}/server/database/sqlite/e2e-test.db`); + logger.log('SETUP', 'Removed old database', 'INFO', false); + } + + const sqlite = new SQLite(); + + await sqlite.connect('e2e-test'); + await sqlite.setup(); + + const { username, email, password } = loginDetails.ownerUser; + + await sqlite.client('user').insert({ + email: email.toLowerCase(), + displayName: username, + password: generateHash(password), + avatar: null, + permission: 1, + isVerified: true, + }); + + logger.log('SETUP', 'Created owner user', 'INFO', false); + + return sqlite.client.destroy(); +}; + +setupDatabase();