From fc8c93e57564b63f9c88bcf1245f6aedff187d1a Mon Sep 17 00:00:00 2001 From: Armano Date: Thu, 6 Feb 2020 01:56:34 +0100 Subject: [PATCH 1/3] test(test): remove temp files after test run --- @packages/test/src/fix.ts | 5 ++++- jest.config.js | 2 +- test/tmp-environment.js | 16 ++++++++++++++++ yarn.lock | 12 +----------- 4 files changed, 22 insertions(+), 13 deletions(-) create mode 100644 test/tmp-environment.js diff --git a/@packages/test/src/fix.ts b/@packages/test/src/fix.ts index 85a45fc9da..446e81c630 100644 --- a/@packages/test/src/fix.ts +++ b/@packages/test/src/fix.ts @@ -1,8 +1,11 @@ -import tmp from 'tmp'; import fs from 'fs-extra'; import path from 'path'; import pkgDir from 'pkg-dir'; +declare global { + var tmp: typeof import('tmp'); +} + export async function bootstrap(fixture?: string, directory?: string) { const tmpDir = tmp.dirSync({ keep: false, diff --git a/jest.config.js b/jest.config.js index 67bfbbc991..a124c54375 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,6 +1,6 @@ module.exports = { preset: 'ts-jest/presets/js-with-babel', - testEnvironment: 'node', + testEnvironment: './test/tmp-environment.js', testRegex: undefined, testMatch: [ '**/*.test.ts?(x)', diff --git a/test/tmp-environment.js b/test/tmp-environment.js new file mode 100644 index 0000000000..99432b5cf9 --- /dev/null +++ b/test/tmp-environment.js @@ -0,0 +1,16 @@ +// https://github.com/raszi/node-tmp/issues/229 + +const NodeEnvironment = require('jest-environment-node'); +const tmp = require('tmp'); + +tmp.setGracefulCleanup(); + +class TmpEnvironment extends NodeEnvironment { + async setup() { + await super.setup(); + + this.global.tmp = tmp; + } +} + +module.exports = TmpEnvironment; diff --git a/yarn.lock b/yarn.lock index a20efebb65..5d6dac6595 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2036,21 +2036,11 @@ resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/node@*": - version "12.0.2" - resolved "https://registry.npmjs.org/@types/node/-/node-12.0.2.tgz#3452a24edf9fea138b48fad4a0a028a683da1e40" - integrity sha512-5tabW/i+9mhrfEOUcLDu2xBPsHJ+X5Orqy9FKpale3SjDA17j5AEpYq5vfy3oAeAHGcvANRCO3NV3d2D6q3NiA== - -"@types/node@12.12.26": +"@types/node@*", "@types/node@12.12.26", "@types/node@>= 8": version "12.12.26" resolved "https://registry.npmjs.org/@types/node/-/node-12.12.26.tgz#213e153babac0ed169d44a6d919501e68f59dea9" integrity sha512-UmUm94/QZvU5xLcUlNR8hA7Ac+fGpO1EG/a8bcWVz0P0LqtxFmun9Y2bbtuckwGboWJIT70DoWq1r3hb56n3DA== -"@types/node@>= 8": - version "13.5.0" - resolved "https://registry.npmjs.org/@types/node/-/node-13.5.0.tgz#4e498dbf355795a611a87ae5ef811a8660d42662" - integrity sha512-Onhn+z72D2O2Pb2ql2xukJ55rglumsVo1H6Fmyi8mlU9SvKdBk/pUSUAiBY/d9bAOF7VVWajX3sths/+g6ZiAQ== - "@types/normalize-package-data@^2.4.0": version "2.4.0" resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" From 77f6ac8c2fdc7d4fd9361de75304cbee736733ca Mon Sep 17 00:00:00 2001 From: Armano Date: Thu, 6 Feb 2020 04:09:32 +0100 Subject: [PATCH 2/3] test(test-environment): create test environment package --- @packages/test-environment/package.json | 32 +++++++++++++++++++ .../test-environment/src/tmp-environment.ts | 6 ++-- @packages/test-environment/tsconfig.json | 15 +++++++++ jest.config.js | 2 +- tsconfig.json | 1 + 5 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 @packages/test-environment/package.json rename test/tmp-environment.js => @packages/test-environment/src/tmp-environment.ts (62%) create mode 100644 @packages/test-environment/tsconfig.json diff --git a/@packages/test-environment/package.json b/@packages/test-environment/package.json new file mode 100644 index 0000000000..33862c1035 --- /dev/null +++ b/@packages/test-environment/package.json @@ -0,0 +1,32 @@ +{ + "name": "@commitlint/test-environment", + "version": "8.3.5", + "description": "test environment for @commitlint", + "main": "lib/tmp-environment.js", + "types": "lib/tmp-environment.d.ts", + "files": [ + "lib/" + ], + "engines": { + "node": ">=8" + }, + "repository": { + "type": "git", + "url": "https://github.com/conventional-changelog/commitlint.git" + }, + "bugs": { + "url": "https://github.com/conventional-changelog/commitlint/issues" + }, + "homepage": "https://github.com/conventional-changelog/commitlint#readme", + "keywords": [ + "conventional-changelog", + "commitlint", + "test", + "cli" + ], + "license": "MIT", + "dependencies": { + "@types/tmp": "^0.1.0", + "tmp": "0.1.0" + } +} diff --git a/test/tmp-environment.js b/@packages/test-environment/src/tmp-environment.ts similarity index 62% rename from test/tmp-environment.js rename to @packages/test-environment/src/tmp-environment.ts index 99432b5cf9..13666cc179 100644 --- a/test/tmp-environment.js +++ b/@packages/test-environment/src/tmp-environment.ts @@ -1,7 +1,7 @@ // https://github.com/raszi/node-tmp/issues/229 -const NodeEnvironment = require('jest-environment-node'); -const tmp = require('tmp'); +import NodeEnvironment from 'jest-environment-node'; +import tmp from 'tmp'; tmp.setGracefulCleanup(); @@ -13,4 +13,4 @@ class TmpEnvironment extends NodeEnvironment { } } -module.exports = TmpEnvironment; +export default TmpEnvironment; diff --git a/@packages/test-environment/tsconfig.json b/@packages/test-environment/tsconfig.json new file mode 100644 index 0000000000..a38b053b3c --- /dev/null +++ b/@packages/test-environment/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.shared.json", + "compilerOptions": { + "composite": true, + "rootDir": "./src", + "outDir": "./lib" + }, + "include": [ + "./src/**/*.ts" + ], + "exclude": [ + "./src/**/*.test.ts", + "./lib/**/*" + ] +} diff --git a/jest.config.js b/jest.config.js index a124c54375..c21326e247 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,6 +1,6 @@ module.exports = { preset: 'ts-jest/presets/js-with-babel', - testEnvironment: './test/tmp-environment.js', + testEnvironment: '@commitlint/test-environment', testRegex: undefined, testMatch: [ '**/*.test.ts?(x)', diff --git a/tsconfig.json b/tsconfig.json index 314a1e218e..1e84cc1ba1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,6 +3,7 @@ "include": [], "extends": "./tsconfig.shared.json", "references": [ + { "path": "@packages/test-environment" }, { "path": "@packages/test" }, { "path": "@commitlint/ensure" }, { "path": "@commitlint/execute-rule" }, From d13b261c8bc827e0d396abe8fc218d377b3a4ea6 Mon Sep 17 00:00:00 2001 From: Armano Date: Thu, 6 Feb 2020 04:24:33 +0100 Subject: [PATCH 3/3] refactor(test-environment): rename tmp to test --- @packages/test-environment/package.json | 4 ++-- .../src/{tmp-environment.ts => test-environment.ts} | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) rename @packages/test-environment/src/{tmp-environment.ts => test-environment.ts} (64%) diff --git a/@packages/test-environment/package.json b/@packages/test-environment/package.json index 33862c1035..e1b7c74c2e 100644 --- a/@packages/test-environment/package.json +++ b/@packages/test-environment/package.json @@ -2,8 +2,8 @@ "name": "@commitlint/test-environment", "version": "8.3.5", "description": "test environment for @commitlint", - "main": "lib/tmp-environment.js", - "types": "lib/tmp-environment.d.ts", + "main": "lib/test-environment.js", + "types": "lib/test-environment.d.ts", "files": [ "lib/" ], diff --git a/@packages/test-environment/src/tmp-environment.ts b/@packages/test-environment/src/test-environment.ts similarity index 64% rename from @packages/test-environment/src/tmp-environment.ts rename to @packages/test-environment/src/test-environment.ts index 13666cc179..b314a06e5d 100644 --- a/@packages/test-environment/src/tmp-environment.ts +++ b/@packages/test-environment/src/test-environment.ts @@ -1,16 +1,15 @@ // https://github.com/raszi/node-tmp/issues/229 - import NodeEnvironment from 'jest-environment-node'; import tmp from 'tmp'; -tmp.setGracefulCleanup(); - -class TmpEnvironment extends NodeEnvironment { +class TestEnvironment extends NodeEnvironment { async setup() { await super.setup(); + tmp.setGracefulCleanup(); + this.global.tmp = tmp; } } -export default TmpEnvironment; +export default TestEnvironment;