forked from PatrickJS/angular-webpack-starter
-
Notifications
You must be signed in to change notification settings - Fork 0
How to integrate with Wallaby.js
Justin edited this page Jun 27, 2016
·
7 revisions
We need to implement the changes made here: https://github.com/wallabyjs/angular2-webpack-starter/commit/5636f874df15d61f25f1163ca22779232659dbf3
Run this first:
npm install wallaby-webpack --save-devnpm install null-loader --save-dev-
npm install phantomjs-prebuilt --save-dev(I'm unsure is this is required but doesn't seem to break anything)
Create config/karma-require.js and add the following block.
/*
* Ok, this is kinda crazy. We can use the the context method on
* require that webpack created in order to tell webpack
* what files we actually want to require or import.
* Below, context will be an function/object with file names as keys.
* using that regex we are saying look in ./src/app and ./test then find
* any file that ends with spec.js and get its path. By passing in true
* we say do this recursively
*/
var testContext = require.context('../src', true, /\.spec\.ts/);
/*
* get all the files, for each file, call the context function
* that will require the file and load it up here. Context will
* loop and require those spec files here
*/
function requireAll(requireContext) {
return requireContext.keys().map(requireContext);
}
// requires and returns all modules that match
var modules = requireAll(testContext);Replace the above block in config/spec-bundle.js with:
window.__karma__ && require('./karma-require');create a new file in root directory as wallaby.js with the following content:
var wallabyWebpack = require('wallaby-webpack');
var webpackPostprocessor = wallabyWebpack({
entryPatterns: [
'config/spec-bundle.js',
'src/**/*spec.js'
],
module: {
loaders: [
{test: /\.css$/, loader: 'raw-loader'},
{test: /\.html$/, loader: 'raw-loader'},
{test: /karma-require/, loader: 'null'}
]
}
});
module.exports = function () {
return {
files: [
{pattern: 'config/spec-bundle.js', load: false},
{pattern: 'config/karma-require.js', load: false},
{pattern: 'src/**/*.ts', load: false},
{pattern: 'src/**/*.css', load: false},
{pattern: 'src/**/*.html', load: false},
{pattern: 'src/**/*spec.ts', ignore: true}
],
tests: [
{pattern: 'src/**/*spec.ts', load: false},
{pattern: 'test/**/*spec.ts', load: false}
],
testFramework: 'jasmine',
env: {
runner: require('phantomjs-prebuilt').path,
params: { runner: '--web-security=false' }
},
postprocessor: webpackPostprocessor,
setup: function () {
window.__moduleBundler.loadTests();
}
};
};please also see https://github.com/AngularClass/angular2-webpack-starter/issues/242 and https://github.com/wallabyjs/angular2-webpack-starter
enjoy — AngularClass
Learn AngularJS, Angular 2, and Modern Web Development from the best. Looking for corporate Angular training, want to host us, or Angular consulting? patrick@angularclass.com
