|
4 | 4 | // License text available at https://opensource.org/licenses/Artistic-2.0
|
5 | 5 |
|
6 | 6 | 'use strict';
|
| 7 | +require('./init'); |
7 | 8 |
|
8 | 9 | var connector = require('..');
|
9 | 10 | var DataSource = require('loopback-datasource-juggler').DataSource;
|
10 | 11 | var should = require('should');
|
11 |
| -var db; |
12 | 12 |
|
13 |
| -before(function() { |
14 |
| - db = getDBConfig(); |
15 |
| -}); |
| 13 | +// simple wrapper that uses JSON.parse(JSON.stringify()) as cheap clone |
| 14 | +function newConfig(withURL) { |
| 15 | + return JSON.parse(JSON.stringify(getDBConfig(withURL))); |
| 16 | +} |
16 | 17 |
|
17 | 18 | describe('initialization', function() {
|
18 | 19 | it('honours user-defined pg-pool settings', function() {
|
19 |
| - var dataSource = new DataSource(connector, {}); |
| 20 | + var dataSource = new DataSource(connector, newConfig()); |
20 | 21 | var pool = dataSource.connector.pg.pool;
|
21 | 22 | pool._factory.max.should.not.equal(999);
|
22 | 23 |
|
23 |
| - var settings = {max: 999}; // non-default value |
| 24 | + var settings = newConfig(); |
| 25 | + settings.max = 999; // non-default value |
24 | 26 | var dataSource = new DataSource(connector, settings);
|
25 | 27 | var pool = dataSource.connector.pg.pool;
|
26 | 28 | pool._factory.max.should.equal(999);
|
27 | 29 | });
|
28 | 30 |
|
29 | 31 | it('honours user-defined url settings', function() {
|
30 |
| - var settings = {url: 'postgres://' + db.username + ':' + db.password + '@' + |
31 |
| - db.host + ':' + db.port + '/' + db.database}; |
| 32 | + var settings = newConfig(); |
32 | 33 |
|
33 |
| - var dataSource = new DataSource(connector, {}); |
| 34 | + var dataSource = new DataSource(connector, settings); |
34 | 35 | var clientConfig = dataSource.connector.clientConfig;
|
35 | 36 | should.not.exist(clientConfig.connectionString);
|
36 | 37 |
|
| 38 | + settings = newConfig(true); |
37 | 39 | var dataSource = new DataSource(connector, settings);
|
38 | 40 | var clientConfig = dataSource.connector.clientConfig;
|
39 | 41 | clientConfig.connectionString.should.equal(settings.url);
|
40 | 42 | });
|
41 | 43 |
|
42 | 44 | it('honours multiple user-defined settings', function() {
|
43 |
| - var settings = {url: 'postgres://' + db.username + ':' + db.password + '@' + |
44 |
| - db.host + ':' + db.port + '/' + db.database, max: 999}; |
| 45 | + var urlOnly = {url: newConfig(true).url, max: 999}; |
45 | 46 |
|
46 |
| - var dataSource = new DataSource(connector, settings); |
| 47 | + var dataSource = new DataSource(connector, urlOnly); |
47 | 48 | var pool = dataSource.connector.pg.pool;
|
48 | 49 | pool._factory.max.should.equal(999);
|
49 | 50 |
|
50 | 51 | var clientConfig = dataSource.connector.clientConfig;
|
51 |
| - clientConfig.connectionString.should.equal(settings.url); |
| 52 | + clientConfig.connectionString.should.equal(urlOnly.url); |
52 | 53 | });
|
53 | 54 | });
|
0 commit comments