From 5f6afca75a416182ed72f1dfd18f96baadb1dcfd Mon Sep 17 00:00:00 2001 From: Nora Date: Mon, 15 Jul 2019 14:36:51 -0400 Subject: [PATCH] run shared tests from both v3 and v4 of juggler --- .eslintignore | 1 + deps/juggler-v3/package.json | 8 ++++++++ deps/juggler-v3/test.js | 24 ++++++++++++++++++++++++ deps/juggler-v4/package.json | 8 ++++++++ deps/juggler-v4/test.js | 24 ++++++++++++++++++++++++ package.json | 6 ++++-- test/init/init.js | 10 +++++++++- test/oracle.test.js | 4 ++-- 8 files changed, 80 insertions(+), 5 deletions(-) create mode 100644 .eslintignore create mode 100644 deps/juggler-v3/package.json create mode 100644 deps/juggler-v3/test.js create mode 100644 deps/juggler-v4/package.json create mode 100644 deps/juggler-v4/test.js diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..7cd53fd --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +**/node_modules/ diff --git a/deps/juggler-v3/package.json b/deps/juggler-v3/package.json new file mode 100644 index 0000000..135844d --- /dev/null +++ b/deps/juggler-v3/package.json @@ -0,0 +1,8 @@ +{ + "name": "juggler-v3", + "version": "3.0.0", + "dependencies": { + "loopback-datasource-juggler": "3.x", + "should": "^13.2.3" + } +} diff --git a/deps/juggler-v3/test.js b/deps/juggler-v3/test.js new file mode 100644 index 0000000..6576341 --- /dev/null +++ b/deps/juggler-v3/test.js @@ -0,0 +1,24 @@ +// Copyright IBM Corp. 2019. All Rights Reserved. +// Node module: loopback-connector-oracle +// This file is licensed under the MIT License. +// License text available at https://opensource.org/licenses/MIT + +'use strict'; + +const juggler = require('loopback-datasource-juggler'); +const name = require('./package.json').name; + +require('../../test/init/init'); + +describe(name, function() { + before(function() { + return global.resetDataSourceClass(juggler.DataSource); + }); + + after(function() { + return global.resetDataSourceClass(); + }); + + require('loopback-datasource-juggler/test/common.batch.js'); + require('loopback-datasource-juggler/test/include.test.js'); +}); diff --git a/deps/juggler-v4/package.json b/deps/juggler-v4/package.json new file mode 100644 index 0000000..32903fe --- /dev/null +++ b/deps/juggler-v4/package.json @@ -0,0 +1,8 @@ +{ + "name": "juggler-v4", + "version": "4.0.0", + "dependencies": { + "loopback-datasource-juggler": "4.x", + "should": "^13.2.3" + } +} diff --git a/deps/juggler-v4/test.js b/deps/juggler-v4/test.js new file mode 100644 index 0000000..6576341 --- /dev/null +++ b/deps/juggler-v4/test.js @@ -0,0 +1,24 @@ +// Copyright IBM Corp. 2019. All Rights Reserved. +// Node module: loopback-connector-oracle +// This file is licensed under the MIT License. +// License text available at https://opensource.org/licenses/MIT + +'use strict'; + +const juggler = require('loopback-datasource-juggler'); +const name = require('./package.json').name; + +require('../../test/init/init'); + +describe(name, function() { + before(function() { + return global.resetDataSourceClass(juggler.DataSource); + }); + + after(function() { + return global.resetDataSourceClass(); + }); + + require('loopback-datasource-juggler/test/common.batch.js'); + require('loopback-datasource-juggler/test/include.test.js'); +}); diff --git a/package.json b/package.json index da758d7..e65c579 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "main": "index.js", "scripts": { "lint": "eslint .", - "test": "mocha --UV_THREADPOOL_SIZE=100 --require test/init/init.js test/*.js", + "test": "mocha test/*.test.js node_modules/juggler-v3/test.js node_modules/juggler-v4/test.js", "posttest": "npm run lint" }, "dependencies": { @@ -29,7 +29,9 @@ "bluebird": "^3.3.3", "eslint": "^3.17.0", "eslint-config-loopback": "^8.0.0", - "loopback-datasource-juggler": "^3.0.0", + "juggler-v3": "file:./deps/juggler-v3", + "juggler-v4": "file:./deps/juggler-v4", + "loopback-datasource-juggler": "^3.0.0 || ^4.0.0", "mocha": "^5.2.0", "rc": "^1.0.0", "should": "^8.0.2" diff --git a/test/init/init.js b/test/init/init.js index 08b7372..1d9c5cc 100644 --- a/test/init/init.js +++ b/test/init/init.js @@ -5,7 +5,8 @@ 'use strict'; -var DataSource = require('loopback-datasource-juggler').DataSource; +const juggler = require('loopback-datasource-juggler'); +let DataSource = juggler.DataSource; var config = require('rc')('loopback', {test: {oracle: {}}}).test.oracle; config.maxConn = 64; @@ -23,6 +24,13 @@ global.getDataSource = global.getSchema = function() { 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, diff --git a/test/oracle.test.js b/test/oracle.test.js index ac87971..edba99f 100644 --- a/test/oracle.test.js +++ b/test/oracle.test.js @@ -8,8 +8,8 @@ /* global getDataSource */ var juggler = require('loopback-datasource-juggler'); var CreateDS = juggler.DataSource; -require('loopback-datasource-juggler/test/common.batch.js'); -require('loopback-datasource-juggler/test/include.test.js'); +// require('loopback-datasource-juggler/test/common.batch.js'); +// require('loopback-datasource-juggler/test/include.test.js'); require('./init/init'); var should = require('should');