import { NcContext } from '.'; import axios from 'axios'; const isMysql = (context: NcContext) => context.dbType === 'mysql'; const isSqlite = (context: NcContext) => context.dbType === 'sqlite'; const isPg = (context: NcContext) => context.dbType === 'pg'; const mysql = require('mysql2'); const mysqlExec = async query => { // creates a new mysql connection using credentials from cypress.json env's const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: `test_sakila_${process.env.TEST_PARALLEL_INDEX}`, }); // start connection to db connection.connect(); // exec query + disconnect to db as a Promise return new Promise((resolve, reject) => { connection.query(query, (error, results) => { if (error) reject(error); else { connection.end(); // console.log(results) return resolve(results); } }); }); }; async function sqliteExec(query) { try { await axios.post('http://localhost:8080/api/v1/meta/test/sqlite_exec', { sql: query, }); } catch (e) { console.error(e); throw e; } } export { sqliteExec, mysqlExec, isMysql, isSqlite, isPg };