From b16a1195eb4bc7150e78749da68426702a0a66d9 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Wed, 18 Dec 2019 11:07:37 +0100 Subject: [PATCH] Discover tests via glob --- package-lock.json | 22 ++++++++++++-- package.json | 5 ++-- test/all.js | 19 ++++++++++-- test/setup.js | 74 ++--------------------------------------------- 4 files changed, 40 insertions(+), 80 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2df0a5dc..e252af1b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -549,9 +549,9 @@ } }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -919,6 +919,22 @@ "yargs": "13.3.0", "yargs-parser": "13.1.1", "yargs-unparser": "1.6.0" + }, + "dependencies": { + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } } }, "monaco-editor-core": { diff --git a/package.json b/package.json index 3fe6a6b5..a6d67ea2 100644 --- a/package.json +++ b/package.json @@ -18,12 +18,13 @@ "url": "https://github.com/Microsoft/monaco-languages/issues" }, "devDependencies": { + "glob": "^7.1.6", "jsdom": "^15.2.1", "mocha": "^6.2.2", "monaco-editor-core": "0.18.1", "monaco-plugin-helpers": "^1.0.2", "requirejs": "^2.3.6", - "typescript": "3.7.3", - "terser": "^4.4.3" + "terser": "^4.4.3", + "typescript": "3.7.3" } } diff --git a/test/all.js b/test/all.js index 9757d1ab..fd9d6ab1 100644 --- a/test/all.js +++ b/test/all.js @@ -1,5 +1,7 @@ -var requirejs = require("requirejs"); -var jsdom = require('jsdom'); +const requirejs = require("requirejs"); +const jsdom = require('jsdom'); +const glob = require('glob'); +const path = require('path'); requirejs.config({ baseUrl: '', @@ -11,7 +13,7 @@ requirejs.config({ nodeRequire: require }); -let tmp = new jsdom.JSDOM(''); +const tmp = new jsdom.JSDOM(''); global.document = tmp.window.document; global.navigator = tmp.window.navigator; global.self = global; @@ -19,6 +21,17 @@ global.document.queryCommandSupported = function () { return false; }; global.window = { location: {} }; requirejs(['./test/setup'], function () { + glob('release/dev/*/*.test.js', { cwd: path.dirname(__dirname) }, function (err, files) { + if (err) { + console.log(err); + return; + } + requirejs(files.map(f => f.replace(/\.js$/, '')), function () { + run(); // We can launch the tests! + }, function (err) { + console.log(err); + }) + }); }, function (err) { console.log(err); }); diff --git a/test/setup.js b/test/setup.js index d877db15..a1e88c20 100644 --- a/test/setup.js +++ b/test/setup.js @@ -20,75 +20,5 @@ define('vs/nls', [], { } }); -define(['require'], function () { - requirejs([ - 'vs/editor/editor.main' - ], function () { - requirejs([ - 'release/dev/abap/abap.test', - 'release/dev/apex/apex.test', - 'release/dev/azcli/azcli.test', - 'release/dev/bat/bat.test', - 'release/dev/cameligo/cameligo.test', - 'release/dev/clojure/clojure.test', - 'release/dev/coffee/coffee.test', - 'release/dev/cpp/cpp.test', - 'release/dev/csharp/csharp.test', - 'release/dev/csp/csp.test', - 'release/dev/css/css.test', - 'release/dev/dockerfile/dockerfile.test', - 'release/dev/fsharp/fsharp.test', - 'release/dev/go/go.test', - 'release/dev/graphql/graphql.test', - 'release/dev/handlebars/handlebars.test', - 'release/dev/html/html.test', - 'release/dev/java/java.test', - 'release/dev/javascript/javascript.test', - 'release/dev/kotlin/kotlin.test', - 'release/dev/less/less.test', - 'release/dev/lua/lua.test', - 'release/dev/markdown/markdown.test', - 'release/dev/mips/mips.test', - 'release/dev/msdax/msdax.test', - 'release/dev/mysql/mysql.test', - 'release/dev/objective-c/objective-c.test', - 'release/dev/pascal/pascal.test', - 'release/dev/pascaligo/pascaligo.test', - 'release/dev/perl/perl.test', - 'release/dev/pgsql/pgsql.test', - 'release/dev/php/php.test', - 'release/dev/postiats/postiats.test', - 'release/dev/powerquery/powerquery.test', - 'release/dev/powershell/powershell.test', - 'release/dev/pug/pug.test', - 'release/dev/python/python.test', - 'release/dev/r/r.test', - 'release/dev/razor/razor.test', - 'release/dev/redis/redis.test', - 'release/dev/redshift/redshift.test', - 'release/dev/ruby/ruby.test', - 'release/dev/rust/rust.test', - 'release/dev/sb/sb.test', - 'release/dev/scheme/scheme.test', - 'release/dev/scss/scss.test', - 'release/dev/shell/shell.test', - 'release/dev/sophia/sophia.test', - 'release/dev/solidity/solidity.test', - 'release/dev/sql/sql.test', - 'release/dev/st/st.test', - 'release/dev/swift/swift.test', - 'release/dev/tcl/tcl.test', - 'release/dev/twig/twig.test', - 'release/dev/typescript/typescript.test', - 'release/dev/vb/vb.test', - 'release/dev/xml/xml.test', - 'release/dev/yaml/yaml.test' - ], function () { - run(); // We can launch the tests! - }, function (err) { - console.log(err); - }); - }, function (err) { - console.log(err); - }); -}); +define(['vs/editor/editor.main', function () { +}]);