async connectionLazyInit(port) { return { testQueries: async (queries, fixture) => { const conn = mysql.createConnection({ host: 'localhost', port, user: 'root', database: 'mysql', password: this.password() }); const connect = promisify(conn.connect.bind(conn)); conn.execute = promisify(conn.query.bind(conn)); await connect(); try { await this.prepareFixture(conn, fixture); return await queries .map(query => async () => JSON.parse(JSON.stringify(await conn.execute(query[0], query[1])))) .reduce((a, b) => a.then(b), Promise.resolve()); } finally { await promisify(conn.end.bind(conn))(); } } }; }
const cancelObj = {}; const promise = connectionPromise.then(async conn => { const [{ connectionId }] = await conn.execute('select connection_id() as connectionId'); cancelObj.cancel = async () => { cancelled = true; await self.withConnection(async processConnection => { await processConnection.execute(`KILL ${connectionId}`); }); };
validate: async (connection) => { try { await connection.execute('SELECT 1'); } catch (e) { return false;