Skip to content

Latest commit

 

History

History
88 lines (67 loc) · 2.32 KB

README.md

File metadata and controls

88 lines (67 loc) · 2.32 KB

grunt-ng-json2js

Grunt task for converting JSON files to AngularJS values.

This is a fork of [karma-ng-json2js-preprocessor] (https://github.com/EE/karma-ng-json2js-preprocessor)

see my gulp version [gulp-ng-json2js] (https://github.com/mbcooper/gulp-ng-json2js.git)

I figured that we had no need to convert data on every karma test run, rather we make it into a grunt task that we run when required.

Getting Started

This plugin requires Grunt ~0.4.5

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-ng-json2js --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-ng-json2js');

The "ng_json2js" task

Overview

In your project's Gruntfile, add a section named ng_json2js to the data object passed into grunt.initConfig().

grunt.initConfig({
  ng_json2js: {
    options: {
            // strip this from the file path
             stripPrefix: 'test/fixture/',

             // prepend this to the
             prependPrefix: 'served/'
    },
    files: [
        '/testData/**/*.json'
    ],
  },
});

Examples

For instance this test/fixture/data.json ...

{
    prop: val
}

... with the configuration given above will be converted into:

angular.module('served/data.json', []).value('servedData', {
    prop: 'val'
});

Inject json fixture into your test case:

describe('me', function(){
    beforeEach(module('served/data.json'));

    it('should not fail', function() {
        var testFixture;
        inject(function (_servedData_) {
            testFixture = _servedData_;
        });

        expect(testFixture).toEqual({
            prop: 'val'
        });
    });

});

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

(Nothing yet)