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 };