-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwallaby.config.js
73 lines (62 loc) · 2.13 KB
/
wallaby.config.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
69
70
71
72
73
"use strict";
// Wallaby.js configuration
let wallabyWebpack = require("wallaby-webpack");
let path = require("path");
let fs = require("fs");
let babelConfig = JSON.parse(fs.readFileSync(path.join(__dirname, ".babelrc")));
let wallabyPostprocessor = wallabyWebpack({
//webpack options
externals: {
"react": "React",
"cheerio": "window",
"react/addons": true,
"react/lib/ReactContext": true,
"react/lib/ExecutionEnvironment": true
},
module: {
loaders: [
{test: /\.jsx?$/, include: path.join(__dirname, "src"), exclude: /node_modules/, loaders: ["babel-loader"]},
// {test: /\.json$/, loaders: ["json-loader"]},
{test: /(\.css|\.scss)$/, loaders: ["style-loader", "css-loader?sourceMap", "sass-loader?sourceMap"]},
{test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: "file-loader"},
{test: /\.(woff|woff2)$/, loader: "url-loader?prefix=font/&limit=5000"},
{test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: "url-loader?limit=10000&mimetype=application/octet-stream"},
{test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: "url-loader?limit=10000&mimetype=image/svg+xml"},
{ test: /\.(jpg|png|gif|svg|pdf)$/, use: [ { loader: 'file-loader', options: { name: '[name].[ext]', outputPath: './' } } ] },
]
},
resolve: {
extensions: [".js", ".jsx"]
},
entry: {}
});
process.env.NODE_ENV = "test";
module.exports = function (wallaby) {
return {
// set `load: false` to all source files and tests processed by webpack
// (except external files),
// as they should not be loaded in browser,
// their wrapped versions will be loaded instead
files: [
{pattern: "node_modules/babel-polyfill/browser.js", instrument: false},
{pattern: "node_modules/react/dist/react-with-addons.js", instrument: false},
{pattern: "src/**/*.js", load: false},
{pattern: "src/**/*.jsx", load: false}
],
tests: [
{pattern: "test/**/*.test.js", load: false}
],
env: {
type: "browser"
},
testFramework: "jasmine",
compilers: {
"**/*.js*": wallaby.compilers.babel(babelConfig)
},
postprocessor: wallabyPostprocessor,
setup: function () {
// required to trigger test loading
window.__moduleBundler.loadTests();
}
};
};