https://github.com/rochejul/karma-read-json5
Karma plugin to load JSON (and use if possible JSON5)
https://github.com/rochejul/karma-read-json5
json json5 karma karma-plugin nodejs npm
Last synced: about 2 months ago
JSON representation
Karma plugin to load JSON (and use if possible JSON5)
- Host: GitHub
- URL: https://github.com/rochejul/karma-read-json5
- Owner: rochejul
- License: mit
- Created: 2017-07-13T12:21:20.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-12-07T19:40:55.000Z (over 8 years ago)
- Last Synced: 2025-05-23T20:52:45.583Z (about 1 year ago)
- Topics: json, json5, karma, karma-plugin, nodejs, npm
- Language: JavaScript
- Size: 12.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# karma-read-json5
[](https://david-dm.org/rochejul/karma-read-json5#info=devDependencies)
[](https://snyk.io/test/github/rochejul/karma-read-json5)
[](https://nodei.co/npm/karma-read-json5/)
[](https://nodei.co/npm/karma-read-json5/)
Karma plugin to load JSON (and use if possible JSON5)
## To install it
Simply do:
````
npm install --save-dev --save-exact karma-read-json5
````
## Karma.conf.js example
````javascript
// Karma configuration
module.exports = function (config) {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine', 'readJSON'],
// list of files / patterns to load in the browser
files: [
{ 'pattern': 'test/**/*.json', 'included': false, 'served': true, 'watched': false },
'test/**/*Spec.js'
],
// list of files to exclude
exclude: [],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {},
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress'],
// web server port
port: 9876,
// enable / disable colors in the output (reporters and logs)
colors: true,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_DEBUG,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: false,
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['PhantomJS'],
// Which plugins to enable
plugins: [
'karma-jasmine',
'karma-phantomjs-launcher',
'karma-read-json5'
],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: true,
// Concurrency level
// how many browser should be started simultaneous
concurrency: Infinity,
client: {
readJSON: {
cached: true // Default false
}
}
})
};
````
## Test example
````javascript
'use strict';
describe('Sample - ', function () {
it('simple', function () {
expect(true).toBe(true);
});
it('with simple json', function () {
expect(readJSON('test/mock/normal.json')).toEqual({
"array": [
1,
2,
3
],
"boolean": true,
"null": null,
"number": 123,
"object": {
"a": "b",
"c": "d",
"e": "f"
},
"string": "Hello World"
});
});
it('with extended json', function () {
expect(readJSON('test/mock/extended.json')).toEqual({
"array": [
1,
2,
3
],
"boolean": true,
"null": null,
"Infinity": Infinity,
"number": 123,
"object": {
"a": "b",
"c": "d",
"e": "f"
},
"string": "Hello World"
}
);
});
});
````