Skip to content

Latest commit

 

History

History
59 lines (52 loc) · 1.3 KB

File metadata and controls

59 lines (52 loc) · 1.3 KB

karma-json-fixtures-preprocessor

Preprocessor for converting .json files into .js files and making them accessible from karma test environment

Installation

{
    "devDependencies": {
        "karma": "~0.12.1",
        "karma-json-fixtures-preprocessor": "0.0.1"
    }
}

Configuration

// karma.conf.js
module.exports = function(config) {
  config.set({
    preprocessors: {
      './fixtures/**/*.json': ['json_fixtures']
    },

    files: [
      './fixtures/**/*.json'
    ],
    jsonFixturesPreprocessor: {
      // strip this from the file path \ fixture name
      stripPrefix: 'test/fixtures',
      // strip this to the file path \ fixture name
      prependPrefix: 'mock/',
      // change the global fixtures variable name
      variableName: '__mocks__',
      // transform the filename
      transformPath: function(path) {
        return path + '.js';
      }
    }
  });
};

How it works

Preprocessor requires .json files and converts them into .js files by storing json data as javascript objects under __fixtures__ namespace.

the following file: ./fixtures/test.json

{
    "a": "test"
}

will be accessible in your test environment:

var fixture = window.__fixtures__['fixtures/test'];
fixture["a"] // => 'test'