diff --git a/package-lock.json b/package-lock.json index 36a9c3bc..7eec3439 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5765,6 +5765,75 @@ } } }, + "execa-wrap": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/execa-wrap/-/execa-wrap-1.4.0.tgz", + "integrity": "sha512-iIbG2DlxcO9frSpGJVNlsgSxK3JRkqUilE68UlCKDwPyNuOl2/bvI8urMRhsudEwPnngM9/I5bKKEA56tZ+2iA==", + "dev": true, + "requires": { + "common-tags": "1.7.2", + "debug": "3.1.0", + "execa": "0.10.0", + "indent-string": "3.2.0", + "ramda": "0.25.0", + "strip-ansi": "4.0.0", + "strip-indent": "2.0.0" + }, + "dependencies": { + "common-tags": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.7.2.tgz", + "integrity": "sha512-joj9ZlUOjCrwdbmiLqafeUSgkUM74NqhLsZtSqDmhKudaIY197zTrb8JMl31fMnCUuxwFT23eC/oWvrZzDLRJQ==", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + } + } + }, "exit-hook": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", diff --git a/package.json b/package.json index 4b404b06..2170bbe3 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "pretty": "prettier-standard 'src/**/*.js'", "size": "t=\"$(npm pack .)\"; wc -c \"${t}\"; tar tvf \"${t}\"; rm \"${t}\";", "test": "npm run unit", - "unit": "mocha src/*-spec.js", + "unit": "mocha --timeout 30000 'src/*-spec.js' 'test/*spec.js'", "unused-deps": "dependency-check --unused --no-dev .", "semantic-release": "semantic-release", "start": "node test/server.js", @@ -97,6 +97,7 @@ "dependency-check": "3.4.1", "deps-ok": "1.4.1", "dont-crack": "1.2.1", + "execa-wrap": "1.4.0", "git-issues": "1.3.1", "got": "9.6.0", "license-checker": "24.1.0", diff --git a/test/spec.js b/test/spec.js new file mode 100644 index 00000000..e1e49cda --- /dev/null +++ b/test/spec.js @@ -0,0 +1,24 @@ +/* eslint-env mocha */ +const la = require('lazy-ass') +const execaWrap = require('execa-wrap') +const path = require('path') + +describe('test-node-env', () => { + // for https://github.com/bahmutov/start-server-and-test/issues/184 + it('passes NODE_ENV to the server process', () => { + const cwd = path.join(__dirname, 'test-node-env') + return execaWrap('npm', ['run', 'demo'], { + env: { + NODE_ENV: 'test' + }, + cwd, + filter: ['stdout'] + }).then(result => { + la( + result.includes('server has NODE_ENV=test'), + 'result does not pass the right NODE_ENV to the server process', + result + ) + }) + }) +}) diff --git a/test/test-node-env/package.json b/test/test-node-env/package.json new file mode 100644 index 00000000..746f0feb --- /dev/null +++ b/test/test-node-env/package.json @@ -0,0 +1,8 @@ +{ + "name": "test-node-env", + "scripts": { + "start": "node ../server", + "test": "echo server has NODE_ENV=$NODE_ENV", + "demo": "node ../../src/bin/start.js 9000" + } +}