| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- const webpackConfig = require('./webpack.config.test')
- module.exports = function (config) {
- config.set({
- customLaunchers: {
- ChromeCustom: {
- base: 'ChromeHeadless',
- // We must disable the Chrome sandbox when running Chrome inside Docker
- // (Chrome's sandbox needs more permissions than Docker allows by
- // default)
- flags: ['--no-sandbox'],
- },
- },
- browsers: ['ChromeCustom'],
- files: [
- // Import all tests (see comment in the file for why this is necessary)
- 'test/karma/import_tests.js',
- ],
- middleware: ['fake-img'],
- preprocessors: {
- // Run files through webpack
- 'test/karma/import_tests.js': ['webpack'],
- },
- frameworks: ['mocha', 'chai-sinon'],
- // Configure webpack in the tests
- webpack: webpackConfig,
- // Configure the webpack dev server used to serve test files
- webpackMiddleware: {
- // Disable file-watching -- it is of no use in CI, we use single runs.
- // https://webpack.js.org/configuration/watch/
- watch: false,
- // ^ does not work when placed in webpack.config.test.
- // webpack-dev-middleware overrides it :/
- // v seems to be supported, according to
- // https://www.npmjs.com/package/webpack-dev-middleware#watchoptions
- watchOptions: {
- ignored: [/node_modules/, /frontend/, /test/],
- },
- // Disable noisy CLI output
- stats: 'errors-only',
- },
- plugins: [
- require('karma-chrome-launcher'),
- require('karma-mocha'),
- require('karma-chai-sinon'),
- require('karma-webpack'),
- require('karma-mocha-reporter'),
- { 'middleware:fake-img': ['factory', fakeImgMiddlewareFactory] },
- ],
- reporters: ['mocha'],
- })
- }
- /**
- * Handle fake images
- */
- function fakeImgMiddlewareFactory() {
- return function (req, res, next) {
- if (req.originalUrl.startsWith('/fake/')) {
- return res.end('fake img response')
- }
- next()
- }
- }
|