Skip to content

Commit 42cc949

Browse files
authored
Merge pull request #43 from strongloop/build/test-juggler-v3-and-v4
Run shared tests from both v3 and v4 of juggler
2 parents 569365d + 33778c1 commit 42cc949

File tree

9 files changed

+93
-26
lines changed

9 files changed

+93
-26
lines changed

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
coverage/
2+
**/node_modules/

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@
1414
*.tgz
1515
node_modules
1616
checkstyle.xml
17+
**/node_modules/

deps/juggler-v3/package.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "juggler-v3",
3+
"version": "3.0.0",
4+
"dependencies": {
5+
"loopback-datasource-juggler":"3.x",
6+
"should": "^8.4.0"
7+
}
8+
}

deps/juggler-v3/test.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// Copyright IBM Corp. 2019. All Rights Reserved.
2+
// Node module: loopback-connector-postgresql
3+
// This file is licensed under the Artistic License 2.0.
4+
// License text available at https://opensource.org/licenses/Artistic-2.0
5+
6+
'use strict';
7+
8+
const createDataSource = require('../../test/helpers/data-source-factory');
9+
const kvaoTestSuite = require('loopback-datasource-juggler/test/kvao.suite.js');
10+
const juggler = require('loopback-datasource-juggler');
11+
const name = require('./package.json').name;
12+
13+
describe(name, function() {
14+
before(function() {
15+
return createDataSource.resetDataSourceClass(juggler.DataSource);
16+
});
17+
18+
after(function() {
19+
return createDataSource.resetDataSourceClass();
20+
});
21+
22+
context('using binary packer', function() {
23+
kvaoTestSuite(createDataSource);
24+
});
25+
26+
context('using json-string packer', function() {
27+
kvaoTestSuite(createDataSource.json);
28+
});
29+
30+
context('using json-string packer with hex buffers', function() {
31+
kvaoTestSuite(createDataSource.jsonWithHexBuffers);
32+
});
33+
});

deps/juggler-v4/package.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "juggler-v4",
3+
"version": "3.0.0",
4+
"dependencies": {
5+
"loopback-datasource-juggler":"4.x",
6+
"should": "^13.2.3"
7+
}
8+
}

deps/juggler-v4/test.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// Copyright IBM Corp. 2019. All Rights Reserved.
2+
// Node module: loopback-connector-postgresql
3+
// This file is licensed under the Artistic License 2.0.
4+
// License text available at https://opensource.org/licenses/Artistic-2.0
5+
6+
'use strict';
7+
8+
const createDataSource = require('../../test/helpers/data-source-factory');
9+
const kvaoTestSuite = require('loopback-datasource-juggler/test/kvao.suite.js');
10+
const juggler = require('loopback-datasource-juggler');
11+
const name = require('./package.json').name;
12+
13+
describe(name, function() {
14+
before(function() {
15+
return createDataSource.resetDataSourceClass(juggler.DataSource);
16+
});
17+
18+
after(function() {
19+
return createDataSource.resetDataSourceClass();
20+
});
21+
22+
context('using binary packer', function() {
23+
kvaoTestSuite(createDataSource);
24+
});
25+
26+
context('using json-string packer', function() {
27+
kvaoTestSuite(createDataSource.json);
28+
});
29+
30+
context('using json-string packer with hex buffers', function() {
31+
kvaoTestSuite(createDataSource.jsonWithHexBuffers);
32+
});
33+
});

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
},
1919
"main": "lib/kv-redis.js",
2020
"scripts": {
21-
"test": "mocha test/integration",
21+
"test": "mocha test/integration node_modules/juggler-v3/test.js node_modules/juggler-v4/test.js",
2222
"posttest": "npm run lint",
2323
"lint": "eslint ."
2424
},
@@ -36,6 +36,8 @@
3636
"dirty-chai": "^2.0.1",
3737
"eslint": "^4.19.1",
3838
"eslint-config-loopback": "^10.0.0",
39+
"juggler-v3": "file:./deps/juggler-v3",
40+
"juggler-v4": "file:./deps/juggler-v4",
3941
"loopback-datasource-juggler": "^3.0.0",
4042
"mocha": "^5.2.0",
4143
"should": "^8.4.0"

test/helpers/data-source-factory.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55

66
'use strict';
77

8-
const DataSource = require('loopback-datasource-juggler').DataSource;
98
const connector = require('../..');
9+
const juggler = require('loopback-datasource-juggler');
10+
let DataSource = juggler.DataSource;
1011

1112
const SETTINGS = {
1213
host: process.env.REDIS_HOST || 'localhost',
@@ -62,6 +63,10 @@ createDataSource.jsonWithHexBuffers = function(options) {
6263
return createDataSource(settings);
6364
};
6465

66+
createDataSource.resetDataSourceClass = function(ctor) {
67+
DataSource = ctor || juggler.DataSource;
68+
};
69+
6570
beforeEach(function clearDatabase(done) {
6671
const ds = createDataSource();
6772
ds.connector.execute('FLUSHDB', function(err) {

test/integration/juggler-api.integration.js

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)