2015-05-01 14:55:53 -04:00
|
|
|
'use strict';
|
2015-05-01 14:49:18 -04:00
|
|
|
|
2019-06-04 00:37:17 +02:00
|
|
|
const knex = require('../../src/index');
|
2018-10-15 22:29:53 -04:00
|
|
|
const test = require('tape');
|
2015-05-01 14:49:18 -04:00
|
|
|
|
|
|
|
test('it should parse the connection string', function(t) {
|
2018-07-09 08:10:34 -04:00
|
|
|
t.plan(1);
|
2018-10-15 22:29:53 -04:00
|
|
|
const knexObj = knex({
|
2015-05-01 14:49:18 -04:00
|
|
|
client: 'mysql',
|
2018-07-09 08:10:34 -04:00
|
|
|
connection: 'mysql://user:password@localhost/dbname',
|
|
|
|
});
|
2016-03-08 08:41:13 +01:00
|
|
|
t.deepEqual(knexObj.client.config.connection, {
|
|
|
|
database: 'dbname',
|
2016-09-13 18:12:23 -04:00
|
|
|
host: 'localhost',
|
2016-03-08 08:41:13 +01:00
|
|
|
password: 'password',
|
2018-07-09 08:10:34 -04:00
|
|
|
user: 'user',
|
|
|
|
});
|
|
|
|
knexObj.destroy();
|
|
|
|
});
|
2016-05-19 12:18:11 +03:00
|
|
|
|
|
|
|
test('it should allow to use proprietary dialect', function(t) {
|
2018-07-09 08:10:34 -04:00
|
|
|
t.plan(2);
|
2019-06-04 00:37:17 +02:00
|
|
|
const Client = require('../../src/dialects/mysql');
|
2018-10-15 22:29:53 -04:00
|
|
|
const knexObj = knex({
|
2016-05-19 12:18:11 +03:00
|
|
|
client: Client,
|
2016-05-19 13:32:07 +03:00
|
|
|
connection: {
|
|
|
|
database: 'dbname',
|
2016-09-13 18:12:23 -04:00
|
|
|
host: 'localhost',
|
2016-05-19 13:32:07 +03:00
|
|
|
password: 'password',
|
2018-07-09 08:10:34 -04:00
|
|
|
user: 'user',
|
|
|
|
},
|
|
|
|
});
|
|
|
|
t.ok(knexObj.client instanceof Client);
|
2016-05-19 13:32:07 +03:00
|
|
|
t.deepEqual(knexObj.client.config, {
|
2016-05-19 12:18:11 +03:00
|
|
|
client: Client,
|
2016-05-19 13:32:07 +03:00
|
|
|
connection: {
|
|
|
|
database: 'dbname',
|
2016-09-13 18:12:23 -04:00
|
|
|
host: 'localhost',
|
2016-05-19 13:32:07 +03:00
|
|
|
password: 'password',
|
2018-07-09 08:10:34 -04:00
|
|
|
user: 'user',
|
|
|
|
},
|
|
|
|
});
|
|
|
|
knexObj.destroy();
|
|
|
|
});
|
2016-05-19 12:18:11 +03:00
|
|
|
|
2016-10-09 14:00:55 -04:00
|
|
|
test('it should use knex supported dialect', function(t) {
|
2018-07-09 08:10:34 -04:00
|
|
|
t.plan(1);
|
2018-10-15 22:29:53 -04:00
|
|
|
const knexObj = knex({
|
2016-05-19 12:18:11 +03:00
|
|
|
client: 'postgres',
|
2016-05-19 13:32:07 +03:00
|
|
|
connection: {
|
|
|
|
database: 'dbname',
|
2016-09-13 18:12:23 -04:00
|
|
|
host: 'localhost',
|
2016-05-19 13:32:07 +03:00
|
|
|
password: 'password',
|
2018-07-09 08:10:34 -04:00
|
|
|
user: 'user',
|
|
|
|
},
|
|
|
|
});
|
2016-05-19 13:32:07 +03:00
|
|
|
t.deepEqual(knexObj.client.config, {
|
2016-05-19 12:18:11 +03:00
|
|
|
client: 'postgres',
|
2016-05-19 13:32:07 +03:00
|
|
|
connection: {
|
|
|
|
database: 'dbname',
|
2016-09-13 18:12:23 -04:00
|
|
|
host: 'localhost',
|
2016-05-19 13:32:07 +03:00
|
|
|
password: 'password',
|
2018-07-09 08:10:34 -04:00
|
|
|
user: 'user',
|
|
|
|
},
|
|
|
|
});
|
|
|
|
knexObj.destroy();
|
|
|
|
});
|
2016-12-11 17:23:44 +01:00
|
|
|
|
|
|
|
test('it should throw error if client is omitted in config', function(t) {
|
|
|
|
t.plan(1);
|
|
|
|
try {
|
2018-10-15 22:29:53 -04:00
|
|
|
knex({});
|
2016-12-11 17:23:44 +01:00
|
|
|
t.deepEqual(true, false); //Don't reach this point
|
2018-07-09 08:10:34 -04:00
|
|
|
} catch (error) {
|
|
|
|
t.deepEqual(
|
|
|
|
error.message,
|
|
|
|
"knex: Required configuration option 'client' is missing."
|
|
|
|
);
|
2016-12-11 17:23:44 +01:00
|
|
|
}
|
2018-07-09 08:10:34 -04:00
|
|
|
});
|