| var wallabyWebpack = require('wallaby-webpack'); |
| var path = require('path'); |
| |
| var compilerOptions = Object.assign( |
| require('./tsconfig.json').compilerOptions, |
| require('./src/tsconfig.spec.json').compilerOptions |
| ); |
| |
| compilerOptions.module = 'CommonJs'; |
| |
| module.exports = function(wallaby) { |
| var webpackPostprocessor = wallabyWebpack({ |
| entryPatterns: ['src/wallabyTest.js', 'src/**/*spec.js'], |
| |
| module: { |
| rules: [ |
| { test: /\.css$/, loader: ['raw-loader', 'css-loader'] }, |
| { test: /\.html$/, loader: 'raw-loader' }, |
| { |
| test: /\.ts$/, |
| loader: '@ngtools/webpack', |
| include: /node_modules/, |
| query: { tsConfigPath: 'tsconfig.json' } |
| }, |
| { |
| test: /\.js$/, |
| loader: 'angular2-template-loader', |
| exclude: /node_modules/ |
| }, |
| { test: /\.json$/, loader: 'json-loader' }, |
| { test: /\.styl$/, loaders: ['raw-loader', 'stylus-loader'] }, |
| { test: /\.less$/, loaders: ['raw-loader', 'less-loader'] }, |
| { test: /\.scss$|\.sass$/, loaders: ['raw-loader', 'sass-loader'] }, |
| { test: /\.(jpg|png)$/, loader: 'url-loader?limit=128000' } |
| ] |
| }, |
| |
| resolve: { |
| extensions: ['.js', '.ts'], |
| modules: [ |
| path.join(wallaby.projectCacheDir, 'src/app'), |
| path.join(wallaby.projectCacheDir, 'src'), |
| 'node_modules' |
| ] |
| }, |
| node: { |
| fs: 'empty', |
| net: 'empty', |
| tls: 'empty', |
| dns: 'empty' |
| } |
| }); |
| |
| return { |
| files: [ |
| { |
| pattern: 'src/**/*.+(ts|css|less|scss|sass|styl|html|json|svg)', |
| load: false |
| }, |
| { pattern: 'src/**/*.d.ts', ignore: true }, |
| { pattern: 'src/**/*spec.ts', ignore: true } |
| ], |
| |
| tests: [ |
| { pattern: 'src/**/*spec.ts', load: false }, |
| { pattern: 'src/**/*e2e-spec.ts', ignore: true } |
| ], |
| |
| testFramework: 'jasmine', |
| |
| compilers: { |
| '**/*.ts': wallaby.compilers.typeScript(compilerOptions) |
| }, |
| |
| middleware: function(app, express) { |
| var path = require('path'); |
| app.use( |
| '/favicon.ico', |
| express.static(path.join(__dirname, 'src/favicon.ico')) |
| ); |
| app.use('/assets', express.static(path.join(__dirname, 'src/assets'))); |
| }, |
| |
| env: { |
| kind: 'electron' |
| }, |
| |
| postprocessor: webpackPostprocessor, |
| |
| setup: function() { |
| window.__moduleBundler.loadTests(); |
| }, |
| |
| debug: true |
| }; |
| }; |