148 lines
4 KiB
JavaScript
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();
|
|
});
|
|
});
|