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.
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');
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'
],
},
});
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'
});
});
});
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.
(Nothing yet)