mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-26 20:04:25 +00:00
1d6dd06b88
Because of the way that we're using underscore in the ES bundle (using the global), we need to include underscore globally
81 lines
2.5 KiB
JavaScript
81 lines
2.5 KiB
JavaScript
const path = require('path')
|
|
|
|
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: [
|
|
'test/unit_frontend/js/bootstrap.js',
|
|
// Angular must be loaded before requirejs to set up angular global
|
|
'public/js/libs/angular-1.6.4.min.js',
|
|
'public/js/libs/angular-mocks.js',
|
|
'public/js/libs/jquery-1.11.1.min.js',
|
|
'public/js/libs/underscore-1.3.3.js',
|
|
// Set up requirejs
|
|
'test/unit_frontend/js/test-main.js',
|
|
// 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 },
|
|
// Include ES test files
|
|
'test/unit_frontend/es/**/*.js',
|
|
'modules/**/test/unit_frontend/es/**/*.js',
|
|
// Include CSS (there is some in js/libs dir)
|
|
'public/stylesheets/**/*.css',
|
|
'public/js/libs/**/*.css'
|
|
],
|
|
middleware: ['fake-img'],
|
|
preprocessors: {
|
|
// Run ES test files through webpack (which will then include source
|
|
// files in bundle)
|
|
'test/unit_frontend/es/**/*.js': ['webpack'],
|
|
'modules/**/test/unit_frontend/es/**/*.js': ['webpack']
|
|
},
|
|
frameworks: ['requirejs', 'mocha', 'chai-sinon'],
|
|
// 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-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()
|
|
}
|
|
}
|