From 3afdae34f6e469b31c575d86d9deaffdf7e07d78 Mon Sep 17 00:00:00 2001 From: nodkz Date: Wed, 19 Dec 2018 23:30:41 +0600 Subject: [PATCH] test: increase JEST TIMEOUT for slow connections --- .gitignore | 2 +- README.md | 2 +- package.json | 5 +++-- src/__tests__/multipleDB-test.js | 10 +++++----- src/__tests__/replset-test.js | 2 +- src/__tests__/singleDB-test.js | 6 +++--- src/util/MongoBinaryDownload.js | 2 +- src/util/__tests__/MongoBinary-test.js | 2 +- src/util/__tests__/MongoInstance-test.js | 2 +- yarn.lock | 12 ++++++++++-- 10 files changed, 27 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 4e45a3a4f..7f725c99e 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,7 @@ pids # Directory for instrumented libs generated by jscoverage/JSCover lib-cov - +tmp # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) .grunt diff --git a/README.md b/README.md index 0d48fd092..e97c5ba8b 100644 --- a/README.md +++ b/README.md @@ -299,7 +299,7 @@ import mongoose from 'mongoose'; import MongoMemoryServer from 'mongodb-memory-server'; // May require additional time for downloading MongoDB binaries -jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000; +jasmine.DEFAULT_TIMEOUT_INTERVAL = 600000; let mongoServer; const opts = { useMongoClient: true }; // remove this option if you use mongoose 5 and above diff --git a/package.json b/package.json index 2db90e3d0..63181307a 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "babel-core": "^7.0.0-bridge.0", "babel-eslint": "^10.0.1", "babel-jest": "^23.6.0", + "cross-env": "^5.2.0", "cz-conventional-changelog": "^2.1.0", "eslint": "^5.8.0", "eslint-config-airbnb-base": "^13.1.0", @@ -78,8 +79,8 @@ "build:cjs": "rimraf lib && babel src --ignore __tests__,__mocks__ -d lib", "build:flow": "find ./src -name '*.js' -not -path '*/__*' | while read filepath; do cp $filepath `echo $filepath | sed 's/\\/src\\//\\/lib\\//g'`.flow; done", "build:ts": "find ./src -name '*.d.ts' -not -path '*/__*' | while read filepath; do cp $filepath `echo $filepath | sed 's/\\/src\\//\\/lib\\//g'`; done", - "watch": "jest --watch", - "coverage": "jest --coverage", + "watch": "cross-env MONGOMS_DOWNLOAD_DIR=./tmp jest --watch", + "coverage": "cross-env MONGOMS_DOWNLOAD_DIR=./tmp jest --coverage", "lint": "eslint --ext .js ./src && npm run tslint", "flow": "./node_modules/.bin/flow", "test": "npm run coverage && npm run lint && npm run flow && npm run tscheck", diff --git a/src/__tests__/multipleDB-test.js b/src/__tests__/multipleDB-test.js index b5f1f7477..6cc14fdd4 100644 --- a/src/__tests__/multipleDB-test.js +++ b/src/__tests__/multipleDB-test.js @@ -3,7 +3,7 @@ import { MongoClient } from 'mongodb'; import MongoDBMemoryServer from '../MongoMemoryServer'; -jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000; +jasmine.DEFAULT_TIMEOUT_INTERVAL = 600000; let con1; let con2; @@ -24,10 +24,10 @@ beforeAll(async () => { }); afterAll(() => { - con1.close(); - con2.close(); - mongoServer1.stop(); - mongoServer2.stop(); + if (con1) con1.close(); + if (con2) con2.close(); + if (mongoServer1) mongoServer1.stop(); + if (mongoServer2) mongoServer2.stop(); }); describe('Multiple mongoServers', () => { diff --git a/src/__tests__/replset-test.js b/src/__tests__/replset-test.js index f94bf891a..2aa48ba5c 100644 --- a/src/__tests__/replset-test.js +++ b/src/__tests__/replset-test.js @@ -2,7 +2,7 @@ import MongoMemoryReplSet from '../MongoMemoryReplSet'; -jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000; +jasmine.DEFAULT_TIMEOUT_INTERVAL = 600000; describe('single server replset', () => { let replSet: MongoMemoryReplSet; diff --git a/src/__tests__/singleDB-test.js b/src/__tests__/singleDB-test.js index 2f1eec751..ea62e70ba 100644 --- a/src/__tests__/singleDB-test.js +++ b/src/__tests__/singleDB-test.js @@ -3,7 +3,7 @@ import { MongoClient } from 'mongodb'; import MongoDBMemoryServer from '../MongoMemoryServer'; -jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000; +jasmine.DEFAULT_TIMEOUT_INTERVAL = 600000; let con; let db; @@ -16,8 +16,8 @@ beforeAll(async () => { }); afterAll(() => { - con.close(); - mongoServer.stop(); + if (con) con.close(); + if (mongoServer) mongoServer.stop(); }); describe('Single mongoServer', () => { diff --git a/src/util/MongoBinaryDownload.js b/src/util/MongoBinaryDownload.js index 9955859d0..abf92dfbd 100644 --- a/src/util/MongoBinaryDownload.js +++ b/src/util/MongoBinaryDownload.js @@ -8,7 +8,7 @@ import fs from 'fs'; import md5File from 'md5-file'; import https from 'https'; import HttpsProxyAgent from 'https-proxy-agent'; -import decompress from 'decompress'; +import decompress from 'decompress'; // 💩💩💩 this package does not work with Node@11+Jest+Babel import MongoBinaryDownloadUrl from './MongoBinaryDownloadUrl'; import type { DebugFn, DebugPropT, DownloadProgressT } from '../types'; diff --git a/src/util/__tests__/MongoBinary-test.js b/src/util/__tests__/MongoBinary-test.js index 01431e25b..755c9b462 100644 --- a/src/util/__tests__/MongoBinary-test.js +++ b/src/util/__tests__/MongoBinary-test.js @@ -4,7 +4,7 @@ import tmp from 'tmp'; import MongoBinary from '../MongoBinary'; tmp.setGracefulCleanup(); -jasmine.DEFAULT_TIMEOUT_INTERVAL = 160000; +jasmine.DEFAULT_TIMEOUT_INTERVAL = 600000; describe('MongoBinary', () => { it('should download binary and keep it in cache', async () => { diff --git a/src/util/__tests__/MongoInstance-test.js b/src/util/__tests__/MongoInstance-test.js index c8a5545d7..f6817a079 100644 --- a/src/util/__tests__/MongoInstance-test.js +++ b/src/util/__tests__/MongoInstance-test.js @@ -3,7 +3,7 @@ import tmp from 'tmp'; import MongoInstance from '../MongoInstance'; -jasmine.DEFAULT_TIMEOUT_INTERVAL = 240000; +jasmine.DEFAULT_TIMEOUT_INTERVAL = 600000; let tmpDir; beforeEach(() => { diff --git a/yarn.lock b/yarn.lock index 9b24199bb..446ba72d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1907,6 +1907,14 @@ create-error-class@^3.0.0: dependencies: capture-stack-trace "^1.0.0" +cross-env@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.0.tgz#6ecd4c015d5773e614039ee529076669b9d126f2" + integrity sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg== + dependencies: + cross-spawn "^6.0.5" + is-windows "^1.0.0" + cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -2974,7 +2982,7 @@ get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" -getos@^3.1.0: +getos@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/getos/-/getos-3.1.1.tgz#967a813cceafee0156b0483f7cffa5b3eff029c5" integrity sha512-oUP1rnEhAr97rkitiszGP9EgDVYnmchgFzfqRzSkgtfv7ai6tEi7Ko8GgjNXts7VLWEqrTWyhsOKLe5C5b/Zkg== @@ -3664,7 +3672,7 @@ is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" -is-windows@^1.0.2: +is-windows@^1.0.0, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"