space.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. 'use strict';
  2. var test = require('tape');
  3. var stringify = require('../');
  4. test('space parameter', function (t) {
  5. t.plan(1);
  6. var obj = { one: 1, two: 2 };
  7. t.equal(
  8. stringify(obj, { space: ' ' }),
  9. ''
  10. + '{\n'
  11. + ' "one": 1,\n'
  12. + ' "two": 2\n'
  13. + '}'
  14. );
  15. });
  16. test('space parameter (with tabs)', function (t) {
  17. t.plan(1);
  18. var obj = { one: 1, two: 2 };
  19. t.equal(
  20. stringify(obj, { space: '\t' }),
  21. ''
  22. + '{\n'
  23. + '\t"one": 1,\n'
  24. + '\t"two": 2\n'
  25. + '}'
  26. );
  27. });
  28. test('space parameter (with a number)', function (t) {
  29. t.plan(1);
  30. var obj = { one: 1, two: 2 };
  31. t.equal(
  32. stringify(obj, { space: 3 }),
  33. ''
  34. + '{\n'
  35. + ' "one": 1,\n'
  36. + ' "two": 2\n'
  37. + '}'
  38. );
  39. });
  40. test('space parameter (nested objects)', function (t) {
  41. t.plan(1);
  42. var obj = { one: 1, two: { b: 4, a: [2, 3] } };
  43. t.equal(
  44. stringify(obj, { space: ' ' }),
  45. ''
  46. + '{\n'
  47. + ' "one": 1,\n'
  48. + ' "two": {\n'
  49. + ' "a": [\n'
  50. + ' 2,\n'
  51. + ' 3\n'
  52. + ' ],\n'
  53. + ' "b": 4\n'
  54. + ' }\n'
  55. + '}'
  56. );
  57. });
  58. test('space parameter (same as native)', function (t) {
  59. t.plan(1);
  60. // for this test, properties need to be in alphabetical order
  61. var obj = { one: 1, two: { a: [2, 3], b: 4 } };
  62. t.equal(
  63. stringify(obj, { space: ' ' }),
  64. JSON.stringify(obj, null, ' ')
  65. );
  66. });