From 4e4d9aee8908dc4bfe94c258b87f90ae0acb2176 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Thu, 22 Feb 2018 17:45:31 +0000 Subject: [PATCH] Configure karma to use webpack for new ES file --- services/web/karma.conf.js | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/services/web/karma.conf.js b/services/web/karma.conf.js index 0c8ea0a12f..b5f74d0f29 100644 --- a/services/web/karma.conf.js +++ b/services/web/karma.conf.js @@ -1,3 +1,5 @@ +const path = require('path') + module.exports = function (config) { config.set({ customLaunchers: { @@ -21,14 +23,38 @@ module.exports = function (config) { // Include source & test files, but don't "include" them as requirejs // handles this for us { pattern: 'public/js/**/*.js', included: false }, - { pattern: 'test/unit_frontend/js/**/*.js', included: false } + { pattern: 'test/unit_frontend/js/**/*.js', included: false }, + // Include ES test files + 'test/unit_frontend/es/**/*.js' ], + preprocessors: { + // Run ES test files through webpack (which will then include source + // files in bundle) + 'test/unit_frontend/es/**/*.js': ['webpack'] + }, frameworks: ['requirejs', 'mocha', 'chai-sinon'], + reporters: ['tap'], + // Configure webpack in the tests + webpack: { + resolve: { + alias: { + // Alias Src in import pathnames to public/es + // Cuts down on the amount of ../../ etc + Src: path.join(__dirname, 'public/es/') + } + } + }, + // Configure the webpack dev server used to serve test files + webpackMiddleware: { + // Disable noisy CLI output + stats: 'errors-only' + }, plugins: [ + require('karma-chrome-launcher'), require('karma-requirejs'), require('karma-mocha'), require('karma-chai-sinon'), - require('karma-chrome-launcher'), + require('karma-webpack'), require('karma-mocha-reporter') ], reporters: ['mocha']