wishthis/node_modules/gulp-json-editor/test/option.js
2022-01-21 09:28:41 +01:00

148 lines
4 KiB
JavaScript

var json = require('../');
var gulp = require('gulp');
it('should pass-through second argument to js-beautify', function(done) {
var stream = gulp.src('test/test.json').pipe(json({
version: '2.0.0',
description: 'this is test',
array: [
'1234567890', '1234567890', '1234567890', '1234567890',
'1234567890', '1234567890', '1234567890', '1234567890',
],
nested: {
version: '2.0.1',
description: 'this is test for nested',
},
},
{
indent_size: 3,
indent_char: ' ',
brace_style: 'expand',
preserve_newlines: false,
wrap_line_length: 80,
}));
stream.on('data', function(file) {
var expected =
'{\n' +
' "name": "test object",\n' +
' "version": "2.0.0",\n' +
' "nested":\n' +
' {\n' +
' "name": "nested object",\n' +
' "version": "2.0.1",\n' +
' "description": "this is test for nested"\n' +
' },\n' +
' "authors": ["tom"],\n' +
' "description": "this is test",\n' +
' "array": ["1234567890", "1234567890", "1234567890", "1234567890",\n' +
' "1234567890", "1234567890", "1234567890", "1234567890"\n' +
' ]\n' +
'}';
file.contents.toString().should.eql(expected);
done();
});
});
it('should keep indentation', function(done) {
var stream = gulp.src('test/test.json').pipe(json({
version: '2.0.0',
description: 'this is test',
array: [
'1234567890', '1234567890', '1234567890', '1234567890',
'1234567890', '1234567890', '1234567890', '1234567890',
],
nested: {
version: '2.0.1',
description: 'this is test for nested',
},
},
{
brace_style: 'expand',
preserve_newlines: false,
wrap_line_length: 80,
}));
stream.on('data', function(file) {
var expected =
'{\n' +
' "name": "test object",\n' +
' "version": "2.0.0",\n' +
' "nested":\n' +
' {\n' +
' "name": "nested object",\n' +
' "version": "2.0.1",\n' +
' "description": "this is test for nested"\n' +
' },\n' +
' "authors": ["tom"],\n' +
' "description": "this is test",\n' +
' "array": ["1234567890", "1234567890", "1234567890", "1234567890",\n' +
' "1234567890", "1234567890", "1234567890", "1234567890"\n' +
' ]\n' +
'}';
file.contents.toString().should.eql(expected);
done();
});
});
it('should bypass beautification when property is set', function(done) {
var stream = gulp.src('test/test.json').pipe(json({
version: '2.0.0',
description: 'this is test',
array: [
'1234567890', '1234567890', '1234567890', '1234567890',
'1234567890', '1234567890', '1234567890', '1234567890',
],
nested: {
version: '2.0.1',
description: 'this is test for nested',
},
},
{
beautify: false,
}));
stream.on('data', function(file) {
var expected = '{"name":"test object","version":"2.0.0",' +
'"nested":{"name":"nested object","version":"2.0.1",' +
'"description":"this is test for nested"},"authors":["tom"],' +
'"description":"this is test",' +
'"array":["1234567890","1234567890","1234567890","1234567890",' +
'"1234567890","1234567890","1234567890","1234567890"]}';
file.contents.toString().should.eql(expected);
done();
});
});
it('should pass-through third argument to deepmerge and do an overwriteMerge', function(done) {
var stream = gulp.src('test/test.json').pipe(json({
authors: ['tomcat'],
},{},{
arrayMerge: function(dist,source) {
return source;
},
}));
stream.on('data', function(file) {
var expected =
'{\n' +
' "name": "test object",\n' +
' "version": "1.0.0",\n' +
' "nested": {\n' +
' "name": "nested object",\n' +
' "version": "1.0.0"\n' +
' },\n' +
' "authors": ["tomcat"]\n' +
'}';
file.contents.toString().should.eql(expected);
done();
});
});