diff options
author | Winnie Hellmann <winnie@gitlab.com> | 2019-03-13 20:38:06 +0100 |
---|---|---|
committer | Winnie Hellmann <winnie@gitlab.com> | 2019-03-14 14:55:46 +0100 |
commit | 4043c35a4f5ab87d0cbfffa02f3d26dad9db383f (patch) | |
tree | 18ef5aabbb27303b48b4adfecd343fb94b9f23e2 /config | |
parent | ef9b601245461e9aae727a95421ead1729f2856d (diff) | |
download | gitlab-ce-4043c35a4f5ab87d0cbfffa02f3d26dad9db383f.tar.gz |
Resolve differences in Karma config between CE and EE
Diffstat (limited to 'config')
-rw-r--r-- | config/karma.config.js | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/config/karma.config.js b/config/karma.config.js index 1d6ff797a29..c30c58edc6f 100644 --- a/config/karma.config.js +++ b/config/karma.config.js @@ -6,6 +6,7 @@ const argumentsParser = require('commander'); const webpackConfig = require('./webpack.config.js'); const ROOT_PATH = path.resolve(__dirname, '..'); +const SPECS_PATH = /^(?:\.[\\\/])?(ee[\\\/])?spec[\\\/]javascripts[\\\/]/; function fatalError(message) { console.error(chalk.red(`\nError: ${message}\n`)); @@ -41,9 +42,19 @@ const specFilters = argumentsParser ) .parse(process.argv).filterSpec; -if (specFilters.length) { - const specsPath = /^(?:\.[\\\/])?spec[\\\/]javascripts[\\\/]/; +const createContext = (specFiles, regex, suffix) => { + const newContext = specFiles.reduce((context, file) => { + const relativePath = file.replace(SPECS_PATH, ''); + context[file] = `./${relativePath}`; + return context; + }, {}); + + webpackConfig.plugins.push( + new webpack.ContextReplacementPlugin(regex, path.join(ROOT_PATH, suffix), newContext), + ); +}; +if (specFilters.length) { // resolve filters let filteredSpecFiles = specFilters.map(filter => glob @@ -64,23 +75,15 @@ if (specFilters.length) { fatalError('Your filter did not match any test files.'); } - if (!filteredSpecFiles.every(file => specsPath.test(file))) { + if (!filteredSpecFiles.every(file => SPECS_PATH.test(file))) { fatalError('Test files must be located within /spec/javascripts.'); } - const newContext = filteredSpecFiles.reduce((context, file) => { - const relativePath = file.replace(specsPath, ''); - context[file] = `./${relativePath}`; - return context; - }, {}); + const CE_FILES = filteredSpecFiles.filter(file => !file.startsWith('ee')); + createContext(CE_FILES, /[^e]{2}[\\\/]spec[\\\/]javascripts$/, 'spec/javascripts'); - webpackConfig.plugins.push( - new webpack.ContextReplacementPlugin( - /spec[\\\/]javascripts$/, - path.join(ROOT_PATH, 'spec/javascripts'), - newContext, - ), - ); + const EE_FILES = filteredSpecFiles.filter(file => file.startsWith('ee')); + createContext(EE_FILES, /ee[\\\/]spec[\\\/]javascripts$/, 'ee/spec/javascripts'); } // Karma configuration @@ -111,6 +114,7 @@ module.exports = function(config) { ], preprocessors: { 'spec/javascripts/**/*.js': ['webpack', 'sourcemap'], + 'ee/spec/javascripts/**/*.js': ['webpack', 'sourcemap'], }, reporters: ['mocha'], webpack: webpackConfig, |