-
Notifications
You must be signed in to change notification settings - Fork 0
/
wallaby.js
68 lines (56 loc) · 2.13 KB
/
wallaby.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
module.exports = function(wallaby) {
var babel = require('babel');
return {
testFramework: '[email protected]',
files: [
{pattern: 'node_modules/chai/chai.js', instrument: false},
{
pattern: 'node_modules/karma-babel-preprocessor/node_modules/babel-core/browser-polyfill.js',
instrument: false
},
{pattern: 'jspm_packages/system.js', instrument: false},
{pattern: 'jspm_config.js', instrument: false},
{pattern: 'public/js/**/*.js', load: false},
{pattern: 'public/js/**/*.spec.js', ignore: true}
],
tests: [
{pattern: 'public/js/**/*.spec.js', load: false}
],
compilers: {
'public/js/**/*.js': wallaby.compilers.babel({
babel: babel,
modules: 'system',
stage: 1
})
},
middleware: (app, express) => {
app.use('/jspm_packages', express.static(require('path').join(__dirname, 'jspm_packages')));
},
bootstrap: function(wallaby) {
wallaby.delayStart();
var mocha = wallaby.testFramework;
mocha.ui('bdd');
var promises = [];
promises.push(System.import('sinon'));
promises.push(System.import('chai'));
promises.push(System.import('chai-as-promised'));
for (var i = 0, len = wallaby.tests.length; i < len; i++) {
promises.push(System.import(wallaby.tests[i].replace(/\.js$/, '')));
}
Promise.all(promises).then(function(modules) {
var sinon = modules[0];
var chai = modules[1];
var chaiAsPromised = modules[2];
// chai plugins
chai.use(chaiAsPromised);
// set as globals
window.assert = chai.assert;
window.expect = chai.expect;
window.sinon = sinon;
wallaby.start();
}).catch(function(error) {
console.log(error);
});
}
};
};