175 lines
4.3 KiB
JavaScript
175 lines
4.3 KiB
JavaScript
|
var json = require('../');
|
||
|
var gulp = require('gulp');
|
||
|
|
||
|
it('should modify property of JSON object (by function editor)', function(done) {
|
||
|
|
||
|
var stream = gulp.src('test/test.json').pipe(json(function(obj) {
|
||
|
obj.version = '2.0.0';
|
||
|
return obj;
|
||
|
}));
|
||
|
|
||
|
stream.on('data', function(file) {
|
||
|
var expected =
|
||
|
'{\n' +
|
||
|
' "name": "test object",\n' +
|
||
|
' "version": "2.0.0",\n' +
|
||
|
' "nested": {\n' +
|
||
|
' "name": "nested object",\n' +
|
||
|
' "version": "1.0.0"\n' +
|
||
|
' },\n' +
|
||
|
' "authors": ["tom"]\n' +
|
||
|
'}';
|
||
|
file.contents.toString().should.eql(expected);
|
||
|
done();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
it('should add property of JSON object (by function editor)', function(done) {
|
||
|
|
||
|
var stream = gulp.src('test/test.json').pipe(json(function(obj) {
|
||
|
obj.description = 'this is test';
|
||
|
return obj;
|
||
|
}));
|
||
|
|
||
|
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": ["tom"],\n' +
|
||
|
' "description": "this is test"\n' +
|
||
|
'}';
|
||
|
file.contents.toString().should.eql(expected);
|
||
|
done();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
it('should remove property of JSON object (by function editor)', function(done) {
|
||
|
|
||
|
var stream = gulp.src('test/test.json').pipe(json(function(obj) {
|
||
|
delete obj.name;
|
||
|
return obj;
|
||
|
}));
|
||
|
|
||
|
stream.on('data', function(file) {
|
||
|
var expected =
|
||
|
'{\n' +
|
||
|
' "version": "1.0.0",\n' +
|
||
|
' "nested": {\n' +
|
||
|
' "name": "nested object",\n' +
|
||
|
' "version": "1.0.0"\n' +
|
||
|
' },\n' +
|
||
|
' "authors": ["tom"]\n' +
|
||
|
'}';
|
||
|
file.contents.toString().should.eql(expected);
|
||
|
done();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
it('should modify nested property of JSON object (by function editor)', function(done) {
|
||
|
|
||
|
var stream = gulp.src('test/test.json').pipe(json(function(obj) {
|
||
|
obj.nested.version = '2.0.1';
|
||
|
return obj;
|
||
|
}));
|
||
|
|
||
|
stream.on('data', function(file) {
|
||
|
var expected =
|
||
|
'{\n' +
|
||
|
' "name": "test object",\n' +
|
||
|
' "version": "1.0.0",\n' +
|
||
|
' "nested": {\n' +
|
||
|
' "name": "nested object",\n' +
|
||
|
' "version": "2.0.1"\n' +
|
||
|
' },\n' +
|
||
|
' "authors": ["tom"]\n' +
|
||
|
'}';
|
||
|
file.contents.toString().should.eql(expected);
|
||
|
done();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
it('should add nested property of JSON object (by function editor)', function(done) {
|
||
|
|
||
|
var stream = gulp.src('test/test.json').pipe(json(function(obj) {
|
||
|
obj.nested.description = 'this is test for nested';
|
||
|
return obj;
|
||
|
}));
|
||
|
|
||
|
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' +
|
||
|
' "description": "this is test for nested"\n' +
|
||
|
' },\n' +
|
||
|
' "authors": ["tom"]\n' +
|
||
|
'}';
|
||
|
file.contents.toString().should.eql(expected);
|
||
|
done();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
it('should remove nested property of JSON object (by function editor)', function(done) {
|
||
|
|
||
|
var stream = gulp.src('test/test.json').pipe(json(function(obj) {
|
||
|
delete obj.nested.name;
|
||
|
return obj;
|
||
|
}));
|
||
|
|
||
|
stream.on('data', function(file) {
|
||
|
var expected =
|
||
|
'{\n' +
|
||
|
' "name": "test object",\n' +
|
||
|
' "version": "1.0.0",\n' +
|
||
|
' "nested": {\n' +
|
||
|
' "version": "1.0.0"\n' +
|
||
|
' },\n' +
|
||
|
' "authors": ["tom"]\n' +
|
||
|
'}';
|
||
|
file.contents.toString().should.eql(expected);
|
||
|
done();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
it('should multiple properties of JSON object (by function editor)', function(done) {
|
||
|
|
||
|
var stream = gulp.src('test/test.json').pipe(json(function(obj) {
|
||
|
obj.version = '2.0.0';
|
||
|
obj.description = 'this is test';
|
||
|
delete obj.name;
|
||
|
obj.nested.version = '2.0.1';
|
||
|
obj.nested.description = 'this is test for nested';
|
||
|
delete obj.nested.name;
|
||
|
return obj;
|
||
|
}));
|
||
|
|
||
|
stream.on('data', function(file) {
|
||
|
var expected =
|
||
|
'{\n' +
|
||
|
' "version": "2.0.0",\n' +
|
||
|
' "nested": {\n' +
|
||
|
' "version": "2.0.1",\n' +
|
||
|
' "description": "this is test for nested"\n' +
|
||
|
' },\n' +
|
||
|
' "authors": ["tom"],\n' +
|
||
|
' "description": "this is test"\n' +
|
||
|
'}';
|
||
|
file.contents.toString().should.eql(expected);
|
||
|
done();
|
||
|
});
|
||
|
});
|