From df0ba5748ab4d0d7b38a3d6ace0146e806f8a8bb Mon Sep 17 00:00:00 2001 From: Jure Triglav <juretriglav@gmail.com> Date: Sun, 28 Jan 2018 16:01:52 +0100 Subject: [PATCH] Bring over a commit that brings jest testing to all packages --- package.json | 20 ++++++++++++++++- packages/cli/package.json | 3 ++- packages/cli/test/cli/{add.js => add.test.js} | 4 +--- .../test/cli/{adduser.js => adduser.test.js} | 0 packages/cli/test/cli/{new.js => new.test.js} | 0 .../test/cli/{remove.js => remove.test.js} | 4 +--- .../test/cli/{setupdb.js => setupdb.test.js} | 0 .../cli/test/cli/{start.js => start.test.js} | 0 packages/cli/test/helpers/index.js | 3 ++- .../{integration.js => integration.test.js} | 22 +++++++++++++++++-- packages/cli/test/jest-setup.js | 5 +++++ packages/client/package.json | 1 + packages/client/test/jest-setup.js | 7 ++++++ packages/components/package.json | 3 ++- packages/components/test/jest-setup.js | 7 ++++++ packages/db-manager/package.json | 4 ++-- packages/db-manager/test/jest-setup.js | 3 +++ packages/logger/package.json | 5 +++-- packages/logger/test/jest-setup.js | 3 +++ packages/server/package.json | 3 ++- packages/server/test/db_test.js | 4 ++++ packages/server/test/jest-setup.js | 3 +++ .../server/test/register_components_test.js | 7 +----- 23 files changed, 88 insertions(+), 23 deletions(-) rename packages/cli/test/cli/{add.js => add.test.js} (94%) rename packages/cli/test/cli/{adduser.js => adduser.test.js} (100%) rename packages/cli/test/cli/{new.js => new.test.js} (100%) rename packages/cli/test/cli/{remove.js => remove.test.js} (94%) rename packages/cli/test/cli/{setupdb.js => setupdb.test.js} (100%) rename packages/cli/test/cli/{start.js => start.test.js} (100%) rename packages/cli/test/{integration.js => integration.test.js} (89%) create mode 100644 packages/cli/test/jest-setup.js create mode 100644 packages/client/test/jest-setup.js create mode 100644 packages/components/test/jest-setup.js create mode 100644 packages/db-manager/test/jest-setup.js create mode 100644 packages/logger/test/jest-setup.js create mode 100644 packages/server/test/jest-setup.js diff --git a/package.json b/package.json index 8c24d7c79..a27527e80 100644 --- a/package.json +++ b/package.json @@ -26,11 +26,29 @@ }, "scripts": { "clean": "lerna clean", - "test": "lerna run test", + "test": "jest", "lint": "npm run lint:js && npm run lint:style", "lint:js": "eslint 'packages/**/*.{js,jsx}'", "lint:style": "stylelint 'packages/**/*.{css,scss}'", "precommit": "lint-staged" }, + "jest": { + "collectCoverage": true, + "collectCoverageFrom": [ + "packages/cli/src/*.js", + "packages/cli/cli/*.js", + "client/src/**/*.{js,jsx}", + "components/**/*.{js,jsx}", + "db-manager/src/**/*.js", + "logger/src/**/*.js", + "server/src/**/*.js", + "sse/lib/**/*.js", + "theme-plugin/*.js", + "ui/src/**/*.{js,jsx}", + "!**/*.test.{js,jsx}", + "!**/node_modules/**" + ], + "projects": ["packages/*"] + }, "workspaces": ["packages/*", "packages/components/packages/*"] } diff --git a/packages/cli/package.json b/packages/cli/package.json index dc1d42488..1cc449410 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -43,13 +43,14 @@ "nsp": "^2.8.1" }, "jest": { - "testMatch": ["**/test/*.js", "**/test/cli/*.js"], + "testMatch": ["<rootDir>/test/*.test.js", "<rootDir>/test/cli/*.test.js"], "testPathIgnorePatterns": ["<rootDir>/build/"], "collectCoverage": true, "collectCoverageFrom": ["src/*.js", "cli/*.js"], "modulePaths": ["<rootDir>/node_modules"], "testEnvironment": "node", "unmockedModulePathPatterns": ["/src/models"], + "setupTestFrameworkScriptFile": "<rootDir>/test/jest-setup.js", "verbose": true } } diff --git a/packages/cli/test/cli/add.js b/packages/cli/test/cli/add.test.js similarity index 94% rename from packages/cli/test/cli/add.js rename to packages/cli/test/cli/add.test.js index 0ec0254eb..bfae775ec 100644 --- a/packages/cli/test/cli/add.js +++ b/packages/cli/test/cli/add.test.js @@ -24,9 +24,7 @@ const writeSpy = fs.writeJsonSync describe('add', () => { beforeAll(() => { - process.chdir( - path.join(__dirname, '..', '..', 'node_modules', '@pubsweet', 'starter'), - ) + process.chdir(path.dirname(require.resolve('@pubsweet/starter'))) }) beforeEach(() => { diff --git a/packages/cli/test/cli/adduser.js b/packages/cli/test/cli/adduser.test.js similarity index 100% rename from packages/cli/test/cli/adduser.js rename to packages/cli/test/cli/adduser.test.js diff --git a/packages/cli/test/cli/new.js b/packages/cli/test/cli/new.test.js similarity index 100% rename from packages/cli/test/cli/new.js rename to packages/cli/test/cli/new.test.js diff --git a/packages/cli/test/cli/remove.js b/packages/cli/test/cli/remove.test.js similarity index 94% rename from packages/cli/test/cli/remove.js rename to packages/cli/test/cli/remove.test.js index ca2fe44ad..f2ebd2087 100644 --- a/packages/cli/test/cli/remove.js +++ b/packages/cli/test/cli/remove.test.js @@ -24,9 +24,7 @@ const writeSpy = fs.writeJsonSync describe('remove', () => { beforeAll(() => { - process.chdir( - path.join(__dirname, '..', '..', 'node_modules', '@pubsweet', 'starter'), - ) + process.chdir(path.dirname(require.resolve('@pubsweet/starter'))) }) beforeEach(() => { diff --git a/packages/cli/test/cli/setupdb.js b/packages/cli/test/cli/setupdb.test.js similarity index 100% rename from packages/cli/test/cli/setupdb.js rename to packages/cli/test/cli/setupdb.test.js diff --git a/packages/cli/test/cli/start.js b/packages/cli/test/cli/start.test.js similarity index 100% rename from packages/cli/test/cli/start.js rename to packages/cli/test/cli/start.test.js diff --git a/packages/cli/test/helpers/index.js b/packages/cli/test/helpers/index.js index e5e971816..fc837419d 100644 --- a/packages/cli/test/helpers/index.js +++ b/packages/cli/test/helpers/index.js @@ -3,7 +3,7 @@ const { spawn } = require('child_process') const path = require('path') const reduce = require('lodash/fp/reduce').convert({ cap: false }) -const pubsweet = path.resolve('bin/pubsweet.js') +const pubsweet = path.resolve(__dirname, '..', '..', 'bin', 'pubsweet.js') const formatOpts = reduce( (acc, value, key) => acc.concat(`--${key}`, value), @@ -41,6 +41,7 @@ const runCommandAsync = ({ args, options, cwd, nodeConfig, stdio }) => stdio, env: getEnvWithConfig(nodeConfig), shell: true, + detached: true, }) module.exports = { diff --git a/packages/cli/test/integration.js b/packages/cli/test/integration.test.js similarity index 89% rename from packages/cli/test/integration.js rename to packages/cli/test/integration.test.js index 316d531b9..7a3e56f25 100644 --- a/packages/cli/test/integration.js +++ b/packages/cli/test/integration.test.js @@ -18,6 +18,18 @@ const nodeConfig = { dbPath, adapter: 'leveldb', }, + // TODO: Remove this once version of server that handles + // undefined app validations is released. + validations: 'path', + authsome: { + mode: 'authsome/src/modes/blog', + }, + pubsweet: { + components: [], + }, + 'pubsweet-client': { + theme: 'PepperTheme', + }, } const dbOptions = { @@ -155,11 +167,17 @@ describe('CLI: integration test', () => { app.stdout.on('data', async data => { console.log('stdout:', data.toString()) if (data.toString().includes('App is listening')) { - const result = await fetch('http://localhost:4000') + const result = await fetch('http://localhost:3000') expect(result.status).toBe(200) - done() + console.log('Killing the app') + process.kill(-app.pid) } }) + + app.on('close', (code, signal) => { + console.log(`App killed ${signal}`) + done() + }) }) }) }) diff --git a/packages/cli/test/jest-setup.js b/packages/cli/test/jest-setup.js new file mode 100644 index 000000000..7363485a9 --- /dev/null +++ b/packages/cli/test/jest-setup.js @@ -0,0 +1,5 @@ +const path = require('path') + +process.env.NODE_CONFIG_DIR = path.resolve(__dirname, '..', 'config') + +process.cwd = () => path.resolve(__dirname, '..') diff --git a/packages/client/package.json b/packages/client/package.json index c0e171854..666b81586 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -58,6 +58,7 @@ "jest": { "testRegex": "/test/.+test.jsx?$", "collectCoverage": true, + "setupTestFrameworkScriptFile": "<rootDir>/test/jest-setup.js", "collectCoverageFrom": ["src/**/*.{js,jsx}"], "globals": { "window": {} diff --git a/packages/client/test/jest-setup.js b/packages/client/test/jest-setup.js new file mode 100644 index 000000000..bc711820f --- /dev/null +++ b/packages/client/test/jest-setup.js @@ -0,0 +1,7 @@ +import Enzyme from 'enzyme' +import Adapter from 'enzyme-adapter-react-16' +import path from 'path' + +Enzyme.configure({ adapter: new Adapter() }) + +process.env.NODE_CONFIG_DIR = path.resolve(__dirname, '..', 'config') diff --git a/packages/components/package.json b/packages/components/package.json index 5c6fe970d..2aaafed34 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -51,6 +51,7 @@ "\\.s?css$": "identity-obj-proxy" }, "transformIgnorePatterns": ["/node_modules/(?!pubsweet)"], - "testPathIgnorePatterns": ["/node_modules", "config/"] + "testPathIgnorePatterns": ["/node_modules", "config/"], + "setupTestFrameworkScriptFile": "<rootDir>/test/jest-setup.js" } } diff --git a/packages/components/test/jest-setup.js b/packages/components/test/jest-setup.js new file mode 100644 index 000000000..bc711820f --- /dev/null +++ b/packages/components/test/jest-setup.js @@ -0,0 +1,7 @@ +import Enzyme from 'enzyme' +import Adapter from 'enzyme-adapter-react-16' +import path from 'path' + +Enzyme.configure({ adapter: new Adapter() }) + +process.env.NODE_CONFIG_DIR = path.resolve(__dirname, '..', 'config') diff --git a/packages/db-manager/package.json b/packages/db-manager/package.json index 90c1b8f29..93b91ce9e 100644 --- a/packages/db-manager/package.json +++ b/packages/db-manager/package.json @@ -19,10 +19,10 @@ "npm": ">=3.0.0" }, "jest": { - "testMatch": ["**/test/**/*.js"], + "testMatch": ["**/test/**/*.test.js"], "collectCoverage": true, "collectCoverageFrom": ["src/**/*.js"], - "modulePaths": ["<rootDir>/node_modules"], + "setupTestFrameworkScriptFile": "<rootDir>/test/jest-setup.js", "testEnvironment": "node", "verbose": true }, diff --git a/packages/db-manager/test/jest-setup.js b/packages/db-manager/test/jest-setup.js new file mode 100644 index 000000000..7de2beed5 --- /dev/null +++ b/packages/db-manager/test/jest-setup.js @@ -0,0 +1,3 @@ +const path = require('path') + +process.env.NODE_CONFIG_DIR = path.resolve(__dirname, '..', 'config') diff --git a/packages/logger/package.json b/packages/logger/package.json index a154b4bc5..0a4aa1f2d 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -25,12 +25,13 @@ "winston": "^2.3.1" }, "jest": { - "testMatch": ["**/test/**/*.js"], + "testMatch": ["**/test/**/*test.js"], "collectCoverage": true, "collectCoverageFrom": ["src/**/*.js"], "modulePaths": ["<rootDir>/node_modules"], "testEnvironment": "node", - "verbose": true + "verbose": true, + "setupTestFrameworkScriptFile": "<rootDir>/test/jest-setup.js" }, "dependencies": { "config": "^1.26.2", diff --git a/packages/logger/test/jest-setup.js b/packages/logger/test/jest-setup.js new file mode 100644 index 000000000..7de2beed5 --- /dev/null +++ b/packages/logger/test/jest-setup.js @@ -0,0 +1,3 @@ +const path = require('path') + +process.env.NODE_CONFIG_DIR = path.resolve(__dirname, '..', 'config') diff --git a/packages/server/package.json b/packages/server/package.json index a980b7ad9..6351a13cb 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -65,6 +65,7 @@ "testEnvironment": "node", "testRegex": "/test/.*_test.js$", "collectCoverage": true, - "collectCoverageFrom": ["src/**/*.js"] + "collectCoverageFrom": ["src/**/*.js"], + "setupTestFrameworkScriptFile": "<rootDir>/test/jest-setup.js" } } diff --git a/packages/server/test/db_test.js b/packages/server/test/db_test.js index a91b0b9eb..69ecc99d0 100644 --- a/packages/server/test/db_test.js +++ b/packages/server/test/db_test.js @@ -1,3 +1,7 @@ +const path = require('path') + +process.env.NODE_CONFIG_DIR = path.resolve(__dirname, '..', 'config') + describe('db configuration', () => { it('overrides default adapter with config', async () => { const originalNodeEnv = process.env.NODE_ENV diff --git a/packages/server/test/jest-setup.js b/packages/server/test/jest-setup.js new file mode 100644 index 000000000..7de2beed5 --- /dev/null +++ b/packages/server/test/jest-setup.js @@ -0,0 +1,3 @@ +const path = require('path') + +process.env.NODE_CONFIG_DIR = path.resolve(__dirname, '..', 'config') diff --git a/packages/server/test/register_components_test.js b/packages/server/test/register_components_test.js index a43a5507f..3af0161ac 100644 --- a/packages/server/test/register_components_test.js +++ b/packages/server/test/register_components_test.js @@ -3,12 +3,7 @@ const request = require('supertest') const path = require('path') const config = require('config') -const mockComponentPath = path.join( - process.cwd(), - 'test', - 'mocks', - 'mock_component.js', -) +const mockComponentPath = path.resolve(__dirname, 'mocks', 'mock_component.js') config.pubsweet = { components: [mockComponentPath] } const api = require('./helpers/api') -- GitLab