From 68c4a3adf56ba826d93435f3090eba8aa12f9973 Mon Sep 17 00:00:00 2001 From: Yaroslav Admin Date: Tue, 12 Jan 2021 22:58:55 +0400 Subject: [PATCH] chore(test): run client tests without grunt wrapper (#3604) --- appveyor.yml | 3 +- gruntfile.js | 19 ++--------- package-lock.json | 71 --------------------------------------- package.json | 6 ++-- tasks/test.js | 48 -------------------------- test/client/karma.conf.js | 6 ++-- 6 files changed, 9 insertions(+), 144 deletions(-) delete mode 100644 tasks/test.js diff --git a/appveyor.yml b/appveyor.yml index 7c696c011..c80d3b651 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -24,7 +24,8 @@ install: - npm run init:windows test_script: - - npm run test:appveyor + - npm run test:unit + - npm run test:client build: off diff --git a/gruntfile.js b/gruntfile.js index 377867d44..40da12beb 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -1,18 +1,5 @@ module.exports = function (grunt) { grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), - pkgFile: 'package.json', - files: { - server: ['lib/**/*.js'], - client: ['client/**/*.js'], - common: ['common/**/*.js'], - context: ['context/**/*.js'], - grunt: ['grunt.js', 'tasks/*.js'] - }, - test: { - unit: 'mochaTest:unit', - client: 'test/client/karma.conf.js' - }, mochaTest: { options: { reporter: 'dot', @@ -29,9 +16,7 @@ module.exports = function (grunt) { } }) - grunt.loadTasks('tasks') - require('load-grunt-tasks')(grunt) + grunt.loadNpmTasks('grunt-mocha-test') - grunt.registerTask('default', ['test']) - grunt.registerTask('test-appveyor', ['test:unit', 'test:client']) + grunt.registerTask('default', ['mochaTest:unit']) } diff --git a/package-lock.json b/package-lock.json index 7febbf37a..2f6a61d84 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2599,12 +2599,6 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, "array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", @@ -2646,21 +2640,6 @@ "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", "dev": true }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", @@ -7020,18 +6999,6 @@ "integrity": "sha1-e3QYm/rW52Nn+1oQ88NpExKLeCs=", "dev": true }, - "load-grunt-tasks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-4.0.0.tgz", - "integrity": "sha512-w5JYPHpZgMxu9XFR9N9MEzyX8E0mLhQkwQ1qVP4mb3gmuomw8Ww8J49NHMbXqyQliq2LUCqdU7/wW96IVuPCKw==", - "dev": true, - "requires": { - "arrify": "^1.0.0", - "multimatch": "^2.0.0", - "pkg-up": "^2.0.0", - "resolve-pkg": "^1.0.0" - } - }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -7623,18 +7590,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", - "dev": true, - "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" - } - }, "mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -11862,15 +11817,6 @@ "find-up": "^2.1.0" } }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -12293,23 +12239,6 @@ "global-dirs": "^0.1.1" } }, - "resolve-pkg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-1.0.0.tgz", - "integrity": "sha1-4ZoV54rKLhJEYdySsuOUPvk0lNk=", - "dev": true, - "requires": { - "resolve-from": "^2.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", - "dev": true - } - } - }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", diff --git a/package.json b/package.json index e350c7927..5a935dc42 100644 --- a/package.json +++ b/package.json @@ -461,7 +461,6 @@ "karma-mocha": "^1.0.1", "karma-mocha-reporter": "^2.0.0", "karma-script-launcher": "^1.0.0", - "load-grunt-tasks": "^4.0.0", "mkdirp": "^0.5.0", "mocha": "^4.1.0", "mocks": "^0.0.15", @@ -493,14 +492,13 @@ "scripts": { "lint": "eslint . --ext js --ignore-pattern *.tpl.js", "lint:fix": "eslint . --ext js --ignore-pattern *.tpl.js --fix", - "test:unit": "grunt test:unit", + "test:unit": "grunt", "test:e2e": "cucumber-js test/e2e/*.feature", - "test:client": "grunt test:client", + "test:client": "node bin/karma start test/client/karma.conf.js", "test": "npm run test:unit && npm run test:e2e && npm run test:client", "build": "node scripts/client.js build", "build:check": "node scripts/client.js check", "build:watch": "node scripts/client.js watch", - "test:appveyor": "grunt test-appveyor", "test:integration": "./scripts/integration-tests.sh", "link": "node --eval \"path=require('path'); require('fs').symlinkSync(path.resolve(__dirname), path.resolve(__dirname, 'node_modules', 'karma'), 'junction')\"", "unlink": "node --eval \"require('fs').unlinkSync(require('path').resolve(__dirname, 'node_modules', 'karma'))\"", diff --git a/tasks/test.js b/tasks/test.js deleted file mode 100644 index efbed1c15..000000000 --- a/tasks/test.js +++ /dev/null @@ -1,48 +0,0 @@ -module.exports = function (grunt) { - /** - * Run tests - * - * grunt test - * grunt test:unit - * grunt test:client - */ - grunt.registerMultiTask('test', 'Run tests.', function () { - const specDone = this.async() - const node = require('which').sync('node') - const path = require('path') - const cmd = path.join(__dirname, '..', 'bin', 'karma') - - function spawnKarma (args, callback) { - grunt.log.writeln(['Running', cmd].concat(args).join(' ')) - var child - if (process.platform === 'win32') { - child = grunt.util.spawn({ cmd: node, args: [cmd].concat(args) }, callback) - } else { - child = grunt.util.spawn({ cmd: cmd, args: args }, callback) - } - child.stdout.pipe(process.stdout) - child.stderr.pipe(process.stderr) - } - - function exec (args, failMsg) { - spawnKarma(args, function (err, result, code) { - if (code || err) { - console.error(err) - grunt.fail.fatal(failMsg, code) - } else { - specDone() - } - }) - } - - // CLIENT unit tests - if (this.target === 'client') { - return exec(['start', this.data, '--single-run', '--no-auto-watch', '--reporters=dots'], - 'Client unit tests failed.') - } - - // UNIT tests or TASK tests - grunt.task.run([this.data]) - specDone() - }) -} diff --git a/test/client/karma.conf.js b/test/client/karma.conf.js index eb16e4e0c..0700aad3d 100644 --- a/test/client/karma.conf.js +++ b/test/client/karma.conf.js @@ -102,7 +102,7 @@ module.exports = function (config) { // use dots reporter, as travis terminal does not support escaping sequences // possible values: 'dots', 'progress' // CLI --reporters progress - reporters: ['progress', 'junit'], + reporters: ['dots'], junitReporter: { // will be resolved to basePath (in the same way as files/exclude patterns) @@ -124,7 +124,7 @@ module.exports = function (config) { // enable / disable watching file and executing tests whenever any file changes // CLI --auto-watch --no-auto-watch - autoWatch: true, + autoWatch: false, // Start these browsers, currently available: // - Chrome @@ -149,7 +149,7 @@ module.exports = function (config) { // Auto run tests on start (when browsers are captured) and exit // CLI --single-run --no-single-run - singleRun: false, + singleRun: true, // report which specs are slower than 500ms // CLI --report-slower-than 500