54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
// Copyright IBM Corp. 2013,2019. All Rights Reserved.
|
|
// Node module: loopback-connector-mysql
|
|
// This file is licensed under the MIT License.
|
|
// License text available at https://opensource.org/licenses/MIT
|
|
|
|
'use strict';
|
|
|
|
module.exports = require('should');
|
|
const juggler = require('loopback-datasource-juggler');
|
|
let DataSource = juggler.DataSource;
|
|
|
|
const config = require('rc')('loopback', {test: {mysql: {}}}).test.mysql;
|
|
global.getConfig = function(options) {
|
|
const dbConf = {
|
|
host: process.env.MYSQL_HOST || config.host || 'localhost',
|
|
port: process.env.MYSQL_PORT || config.port || 3306,
|
|
database: process.env.MYSQL_DATABASE || 'testdb',
|
|
username: process.env.MYSQL_USER || config.username || 'root',
|
|
password: process.env.MYSQL_PASSWORD || config.password || 'root',
|
|
createDatabase: true,
|
|
};
|
|
|
|
if (options) {
|
|
for (const el in options) {
|
|
dbConf[el] = options[el];
|
|
}
|
|
}
|
|
return dbConf;
|
|
};
|
|
|
|
let db;
|
|
global.getDataSource = global.getSchema = function(options, customClass) {
|
|
const ctor = customClass || DataSource;
|
|
db = new ctor(require('../'), global.getConfig(options));
|
|
db.log = function(a) {
|
|
console.log(a);
|
|
};
|
|
return db;
|
|
};
|
|
|
|
global.resetDataSourceClass = function(ctor) {
|
|
DataSource = ctor || juggler.DataSource;
|
|
const promise = db ? db.disconnect() : Promise.resolve();
|
|
db = undefined;
|
|
return promise;
|
|
};
|
|
|
|
global.connectorCapabilities = {
|
|
ilike: false,
|
|
nilike: false,
|
|
};
|
|
|
|
global.sinon = require('sinon');
|