1 | 'use strict';
|
---|
2 |
|
---|
3 | var test = require('tape');
|
---|
4 | var stringify = require('../');
|
---|
5 |
|
---|
6 | test('replace root', function (t) {
|
---|
7 | t.plan(1);
|
---|
8 |
|
---|
9 | var obj = { a: 1, b: 2, c: false };
|
---|
10 | var replacer = function () { return 'one'; };
|
---|
11 |
|
---|
12 | t.equal(stringify(obj, { replacer: replacer }), '"one"');
|
---|
13 | });
|
---|
14 |
|
---|
15 | test('replace numbers', function (t) {
|
---|
16 | t.plan(1);
|
---|
17 |
|
---|
18 | var obj = { a: 1, b: 2, c: false };
|
---|
19 | var replacer = function (key, value) {
|
---|
20 | if (value === 1) { return 'one'; }
|
---|
21 | if (value === 2) { return 'two'; }
|
---|
22 | return value;
|
---|
23 | };
|
---|
24 |
|
---|
25 | t.equal(stringify(obj, { replacer: replacer }), '{"a":"one","b":"two","c":false}');
|
---|
26 | });
|
---|
27 |
|
---|
28 | test('replace with object', function (t) {
|
---|
29 | t.plan(1);
|
---|
30 |
|
---|
31 | var obj = { a: 1, b: 2, c: false };
|
---|
32 | var replacer = function (key, value) {
|
---|
33 | if (key === 'b') { return { d: 1 }; }
|
---|
34 | if (value === 1) { return 'one'; }
|
---|
35 | return value;
|
---|
36 | };
|
---|
37 |
|
---|
38 | t.equal(stringify(obj, { replacer: replacer }), '{"a":"one","b":{"d":"one"},"c":false}');
|
---|
39 | });
|
---|
40 |
|
---|
41 | test('replace with undefined', function (t) {
|
---|
42 | t.plan(1);
|
---|
43 |
|
---|
44 | var obj = { a: 1, b: 2, c: false };
|
---|
45 | var replacer = function (key, value) {
|
---|
46 | if (value === false) { return; }
|
---|
47 | return value;
|
---|
48 | };
|
---|
49 |
|
---|
50 | t.equal(stringify(obj, { replacer: replacer }), '{"a":1,"b":2}');
|
---|
51 | });
|
---|
52 |
|
---|
53 | test('replace with array', function (t) {
|
---|
54 | t.plan(1);
|
---|
55 |
|
---|
56 | var obj = { a: 1, b: 2, c: false };
|
---|
57 | var replacer = function (key, value) {
|
---|
58 | if (key === 'b') { return ['one', 'two']; }
|
---|
59 | return value;
|
---|
60 | };
|
---|
61 |
|
---|
62 | t.equal(stringify(obj, { replacer: replacer }), '{"a":1,"b":["one","two"],"c":false}');
|
---|
63 | });
|
---|
64 |
|
---|
65 | test('replace array item', function (t) {
|
---|
66 | t.plan(1);
|
---|
67 |
|
---|
68 | var obj = { a: 1, b: 2, c: [1, 2] };
|
---|
69 | var replacer = function (key, value) {
|
---|
70 | if (value === 1) { return 'one'; }
|
---|
71 | if (value === 2) { return 'two'; }
|
---|
72 | return value;
|
---|
73 | };
|
---|
74 |
|
---|
75 | t.equal(stringify(obj, { replacer: replacer }), '{"a":"one","b":"two","c":["one","two"]}');
|
---|
76 | });
|
---|