UNPKG

2.53 kBJavaScriptView Raw
1"use strict";
2
3var util = require("../lib/util");
4var assert = require("assert");
5
6describe("#isEqual", function() {
7 var mapA1 = new Map();
8 mapA1.set("a", 1);
9 var mapA2 = new Map();
10 mapA2.set("a", 1);
11 var mapA3 = new Map();
12 mapA3.set("a", 1);
13 mapA3.set("b", 1);
14 var mapB = new Map();
15 mapB.set("a", 2);
16 var mapC = new Map();
17 mapC.set("a", [1,2,3]);
18 var mapD1 = new Map();
19 mapD1.set("a", mapA1);
20 var mapD2 = new Map();
21 mapD2.set("a", mapA2);
22 var mapD3 = new Map();
23 mapD3.set("a", mapB);
24
25 var tests = [
26 {
27 values: [true, true],
28 isEqual: true
29 },
30 {
31 values: [false, false],
32 isEqual: true
33 },
34 {
35 values: [true, false],
36 isEqual: false
37 },
38 {
39 values: [true, "true"],
40 isEqual: false
41 },
42 {
43 values: ["", ""],
44 isEqual: true
45 },
46 {
47 values: ["abc", "abc"],
48 isEqual: true
49 },
50 {
51 values: ["abc", "def"],
52 isEqual: false
53 },
54 {
55 values: [[], []],
56 isEqual: true
57 },
58 {
59 values: [[1,2,3], [1,2,3]],
60 isEqual: true
61 },
62 {
63 values: [[1,2,3], [4,5,6]],
64 isEqual: false
65 },
66 {
67 values: [[1,2,3], []],
68 isEqual: false
69 },
70 {
71 values: [{}, {}],
72 isEqual: true
73 },
74 {
75 values: [{a: true}, {a: true}],
76 isEqual: true
77 },
78 {
79 values: [{a: true}, {a: false}],
80 isEqual: false
81 },
82 {
83 values: [{a: true}, {a: true, b: true}],
84 isEqual: false
85 },
86 {
87 values: [mapA1, mapA1],
88 isEqual: true
89 },
90 {
91 values: [mapA1, mapA2],
92 isEqual: true
93 },
94 {
95 values: [mapA1, mapA3],
96 isEqual: false
97 },
98 {
99 values: [mapB, mapC],
100 isEqual: false
101 },
102 {
103 values: [mapD1, mapD2],
104 isEqual: true
105 },
106 {
107 values: [mapD1, mapD3],
108 isEqual: false
109 },
110 {
111 values: [mapA1, {a: 1}],
112 isEqual: false
113 }
114 ];
115
116 tests.forEach(function(test) {
117 var a = test.values[0];
118 var b = test.values[1];
119 var message = "`" + (a instanceof Map ? "Map" : JSON.stringify(a)) + "` is " + (test.isEqual ? "" : "not ") + "equivalent to `" + (b instanceof Map ? "Map" : JSON.stringify(b)) + "`";
120 it(message, function() {
121 assert.equal(util.isEqual(a, b), test.isEqual);
122 });
123 });
124});
125
126describe("#strSubstitute", function() {
127 it("should work with an object", function() {
128 var result = util.strSubstitute("{a}", {
129 a: 1
130 });
131 assert.equal("1", result);
132 });
133});