All files / src/test compiler.js

85.71% Statements 12/14
60% Branches 3/5
100% Functions 3/3
100% Lines 12/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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    1x 1x 1x   1x 2x                                       2x 2x   2x 2x 2x 2x   2x        
'use strict'
 
const path = require('path')
const webpack = require('webpack')
const { createFsFromVolume, Volume } = require('memfs')
 
module.exports = (fixture, options = {}) => {
  const compiler = webpack({
    context: __dirname,
    entry: `./${fixture}`,
    output: {
      path: path.resolve(__dirname),
      filename: 'bundle.js',
    },
    module: {
      rules: [
        {
          test: /\.svg$/,
          use: {
            loader: path.resolve(__dirname, '../loader.js'),
            options,
          },
        },
      ],
    },
  })
 
  compiler.outputFileSystem = createFsFromVolume(new Volume())
  compiler.outputFileSystem.join = path.join.bind(path)
 
  return new Promise((resolve, reject) => {
    compiler.run((err, stats) => {
      Iif (err) reject(err)
      Iif (stats.hasErrors()) reject(stats.toJson().errors)
 
      resolve(stats)
    })
  })
}