byObject.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. /* jshint node: true */
  2. /* global it */
  3. var json = require('../');
  4. var gulp = require("gulp");
  5. require('should');
  6. require('mocha');
  7. it('should modify property of JSON object (by object editor)', function(done) {
  8. var stream = gulp.src('test/test.json').pipe(json({
  9. version: '2.0.0'
  10. }));
  11. stream.on('data', function(file) {
  12. var expected =
  13. '{\n' +
  14. ' "name": "test object",\n' +
  15. ' "version": "2.0.0",\n' +
  16. ' "nested": {\n' +
  17. ' "name": "nested object",\n' +
  18. ' "version": "1.0.0"\n' +
  19. ' }\n' +
  20. '}'
  21. file.contents.toString().should.eql(expected);
  22. done();
  23. });
  24. });
  25. it('should add property of JSON object (by object editor)', function(done) {
  26. var stream = gulp.src('test/test.json').pipe(json({
  27. description: 'this is test'
  28. }));
  29. stream.on('data', function(file) {
  30. var expected =
  31. '{\n' +
  32. ' "name": "test object",\n' +
  33. ' "version": "1.0.0",\n' +
  34. ' "nested": {\n' +
  35. ' "name": "nested object",\n' +
  36. ' "version": "1.0.0"\n' +
  37. ' },\n' +
  38. ' "description": "this is test"\n' +
  39. '}'
  40. file.contents.toString().should.eql(expected);
  41. done();
  42. });
  43. });
  44. it('should modify nested property of JSON object (by object editor)', function(done) {
  45. var stream = gulp.src('test/test.json').pipe(json({
  46. nested: {
  47. version: '2.0.1'
  48. }
  49. }));
  50. stream.on('data', function(file) {
  51. var expected =
  52. '{\n' +
  53. ' "name": "test object",\n' +
  54. ' "version": "1.0.0",\n' +
  55. ' "nested": {\n' +
  56. ' "name": "nested object",\n' +
  57. ' "version": "2.0.1"\n' +
  58. ' }\n' +
  59. '}'
  60. file.contents.toString().should.eql(expected);
  61. done();
  62. });
  63. });
  64. it('should add nested property of JSON object (by object editor)', function(done) {
  65. var stream = gulp.src('test/test.json').pipe(json({
  66. nested: {
  67. description: 'this is test for nested'
  68. }
  69. }));
  70. stream.on('data', function(file) {
  71. var expected =
  72. '{\n' +
  73. ' "name": "test object",\n' +
  74. ' "version": "1.0.0",\n' +
  75. ' "nested": {\n' +
  76. ' "name": "nested object",\n' +
  77. ' "version": "1.0.0",\n' +
  78. ' "description": "this is test for nested"\n' +
  79. ' }\n' +
  80. '}'
  81. file.contents.toString().should.eql(expected);
  82. done();
  83. });
  84. });
  85. it('should multiple properties of JSON object (by object editor)', function(done) {
  86. var stream = gulp.src('test/test.json').pipe(json({
  87. version: '2.0.0',
  88. description: 'this is test',
  89. nested: {
  90. version: '2.0.1',
  91. description: 'this is test for nested'
  92. }
  93. }));
  94. stream.on('data', function(file) {
  95. var expected =
  96. '{\n' +
  97. ' "name": "test object",\n' +
  98. ' "version": "2.0.0",\n' +
  99. ' "nested": {\n' +
  100. ' "name": "nested object",\n' +
  101. ' "version": "2.0.1",\n' +
  102. ' "description": "this is test for nested"\n' +
  103. ' },\n' +
  104. ' "description": "this is test"\n' +
  105. '}'
  106. file.contents.toString().should.eql(expected);
  107. done();
  108. });
  109. });