karma-fuse-box

1.1.0 • Public • Published

Karma-FuseBox

Use FuseBox to preprocess files in Karma

Install

With npm

npm install --save-dev karma-fuse-box

With yarn

yarn add --dev karma-fuse-box

Usage

karma.conf.js

const path = require("path");
 
module.exports = config => {
  config.set({
    files: [
      // all files ending in "_test"
      { pattern: "test/*_test.js", watched: false },
      { pattern: "test/**/*_test.js", watched: false }
      // each file acts as entry point for the fusebox configuration
    ],
 
    preprocessors: {
      // add FuseBox as preprocessor
      "test/*_test.js": ["fusebox"],
      "test/**/*_test.js": ["fusebox"]
    },
 
    fusebox: {
      // FuseBox configuration
      homeDir: path.join(process.cwd(), "test/")
    },
 
    // for TypeScript
    mime: {
      "text/x-typescript": ["ts", "tsx"]
    }
  });
};

Alternative Usage

This configuration is more performant, but you cannot run single test anymore (only the complete suite).

The above configuration generates a FuseBox bundle for each test. For many test cases this can result in many big files.

The alternative configuration creates a single bundle with all test cases.

karma.conf.js

files: [
  // only specify one entry point
  // and require all tests in there
  'test/index_test.js'
],
 
preprocessors: {
  // add fusebox as preprocessor
  'test/index_test.js': [ 'fusebox' ]
},
 
// additional arithmetic instructions needed
// unlike WebPack FuseBox will not recognize files only by source code
fuseboxInstructions: '+ test/**_test.js',

test/index_test.js

// use fusebox runtime API to load spec files
FuseBox.import("./**_test");

Options

Full list of options you can specify in your karma.conf.js

fusebox

FuseBox configuration (fuse.js)

fuseboxInstructions

String with additional instructions for file bundling

License

MIT

Dependencies (4)

Dev Dependencies (10)

Package Sidebar

Install

npm i karma-fuse-box

Weekly Downloads

4

Version

1.1.0

License

MIT

Unpacked Size

178 kB

Total Files

15

Last publish

Collaborators

  • tobiastimm