diff --git a/.mocharc.json b/.mocharc.json new file mode 100644 index 00000000..01f0c171 --- /dev/null +++ b/.mocharc.json @@ -0,0 +1,4 @@ +{ + "recursive": true, + "retries": 3 +} diff --git a/package.json b/package.json index b7a06cc8..bc8294d6 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "types": "types", "scripts": { "test": "tools/scripts/test.sh", - "test:unit": "mocha --recursive test/unit", + "test:unit": "tools/scripts/test.es6.unit.sh", "test-with-temp-cloud": "tools/scripts/tests-with-temp-cloud.sh", "dtslint": "tools/scripts/ditslint.sh", "lint": "tools/scripts/lint.sh", diff --git a/test/integration/api/admin/api_spec.js b/test/integration/api/admin/api_spec.js index 585712af..53133ab1 100644 --- a/test/integration/api/admin/api_spec.js +++ b/test/integration/api/admin/api_spec.js @@ -141,7 +141,6 @@ function findByAttr(elements, attr, value) { describe("api", function () { - this.retries(3); var contextKey = `test-key${UNIQUE_JOB_SUFFIX_ID}`; before("Verify Configuration", function () { let config = cloudinary.config(true); diff --git a/test/integration/api/search/search_spec.js b/test/integration/api/search/search_spec.js index 37d34ed1..fc11a8ae 100644 --- a/test/integration/api/search/search_spec.js +++ b/test/integration/api/search/search_spec.js @@ -24,7 +24,6 @@ const SEARCH_TAG = 'npm_advanced_search_' + UNIQUE_JOB_SUFFIX_ID; describe("search_api", function () { - this.retries(3); describe("unit", function () { it('should create empty json', function () { var query_hash = cloudinary.v2.search.instance().to_query(); diff --git a/test/integration/api/uploader/archivespec.js b/test/integration/api/uploader/archivespec.js index dfa99423..c33afc9e 100644 --- a/test/integration/api/uploader/archivespec.js +++ b/test/integration/api/uploader/archivespec.js @@ -85,7 +85,6 @@ sharedExamples('archive', function () { }); describe("archive", function () { - this.retries(3); includeContext('archive'); describe("utils", function () { describe('.generate_zip_download_url', function () { diff --git a/test/integration/api/uploader/uploader_spec.js b/test/integration/api/uploader/uploader_spec.js index 5cd8e5f0..b3bb9e4d 100644 --- a/test/integration/api/uploader/uploader_spec.js +++ b/test/integration/api/uploader/uploader_spec.js @@ -40,7 +40,6 @@ const { require('jsdom-global')(); describe("uploader", function () { - this.retries(3); before("Verify Configuration", function () { var config = cloudinary.config(true); if (!(config.api_key && config.api_secret)) { diff --git a/test/streaming_profiles_spec.js b/test/integration/streaming_profiles_spec.js similarity index 97% rename from test/streaming_profiles_spec.js rename to test/integration/streaming_profiles_spec.js index 90ab8140..b94b69f2 100644 --- a/test/streaming_profiles_spec.js +++ b/test/integration/streaming_profiles_spec.js @@ -1,8 +1,8 @@ const keys = require('lodash/keys'); const Q = require('q'); -const cloudinary = require("../cloudinary"); -const helper = require("./spechelper"); -const TIMEOUT = require('./testUtils/testConstants').TIMEOUT; +const cloudinary = require("../../cloudinary"); +const helper = require("../spechelper"); +const TIMEOUT = require('../testUtils/testConstants').TIMEOUT; const api = cloudinary.v2.api; describe('Cloudinary::Api', function () { diff --git a/test/mocha.opts b/test/mocha.opts deleted file mode 100644 index 1e0f10db..00000000 --- a/test/mocha.opts +++ /dev/null @@ -1,3 +0,0 @@ ---require './test/setup.js' --R spec ---ui bdd diff --git a/test/setup.js b/test/setup.js index 419a566b..8236dcac 100644 --- a/test/setup.js +++ b/test/setup.js @@ -1,9 +1,10 @@ -global.expect = require('expect.js'); -require('./testUtils/testBootstrap'); - - require('dotenv').load({ silent: true }); +if (!process.env.CLOUDINARY_URL) { + throw 'Could not start tests - Cloudianry URL is undefined' +} +global.expect = require('expect.js'); +require('./testUtils/testBootstrap'); diff --git a/test/testUtils/testConstants.js b/test/testUtils/testConstants.js index 35596c36..79b34c7e 100644 --- a/test/testUtils/testConstants.js +++ b/test/testUtils/testConstants.js @@ -1,3 +1,6 @@ +require('dotenv').load({ + silent: true +}); const UNIQUE_JOB_SUFFIX_ID = process.env.TRAVIS_JOB_ID || Math.floor(Math.random() * 999999); // create public ID string for tests diff --git a/tools/scripts/test.es5.sh b/tools/scripts/test.es5.sh index e33efcb2..dc28d8ba 100755 --- a/tools/scripts/test.es5.sh +++ b/tools/scripts/test.es5.sh @@ -1,2 +1,7 @@ #!/bin/bash -mocha --recursive --require 'babel-register' --require 'babel-polyfill' test/ + +# --File ensures that setup.js runs first +# This file should be in the config under a 'require' key +# However Mocha 6 does not expose before, beforeEach after etc. at that time +# When Removing support of Node 6 and 8 and using Mocha 8, we should move this to the mocharc.json file +mocha --require './test/setup.js' --require 'babel-register' --require 'babel-polyfill' "./test/**/*spec.js" diff --git a/tools/scripts/test.es6.sh b/tools/scripts/test.es6.sh index 7df55d4a..1f518a8f 100755 --- a/tools/scripts/test.es6.sh +++ b/tools/scripts/test.es6.sh @@ -12,9 +12,19 @@ done if [ "$COLLECT_COVERAGE" -eq "1" ]; then echo 'Running code coverage test on ES6 code' - nyc --reporter=html mocha --recursive test/ + + # --File ensures that setup.js runs first + # This file should be in the config under a 'require' key + # However Mocha 6 does not expose before, beforeEach after etc. at that time + # When Removing support of Node 6 and 8 and using Mocha 8, we should move this to the mocharc.json file + nyc --reporter=html mocha --file "./test/setup.js" "./test/**/*spec.js" exit; else echo 'Running tests on ES6 Code' - mocha --recursive test/ + + # --File ensures that setup.js runs first + # This file should be in the config under a 'require' key + # However Mocha 6 does not expose before, beforeEach after etc. at that time + # When Removing support of Node 6 and 8 and using Mocha 8, we should move this to the mocharc.json file + mocha --file "./test/setup.js" "./test/**/*spec.js" fi diff --git a/tools/scripts/test.es6.unit.sh b/tools/scripts/test.es6.unit.sh new file mode 100755 index 00000000..5cfe0126 --- /dev/null +++ b/tools/scripts/test.es6.unit.sh @@ -0,0 +1,5 @@ +# --File ensures that setup.js runs first +# This file should be in the config under a 'require' key +# However Mocha 6 does not expose before, beforeEach after etc. at that time +# When Removing support of Node 6 and 8 and using Mocha 8, we should move this to the mocharc.json file +mocha --file "./test/setup.js" "./test/unit/**/*spec.js"