UNPKG

6.15 kBJavaScriptView Raw
1'use strict';
2
3module.exports = [
4 {
5 description: 'scalars',
6 tests: [
7 {
8 description: 'equal numbers',
9 value1: 1,
10 value2: 1,
11 equal: true
12 },
13 {
14 description: 'not equal numbers',
15 value1: 1,
16 value2: 2,
17 equal: false
18 },
19 {
20 description: 'number and array are not equal',
21 value1: 1,
22 value2: [],
23 equal: false
24 },
25 {
26 description: '0 and null are not equal',
27 value1: 0,
28 value2: null,
29 equal: false
30 },
31 {
32 description: 'equal strings',
33 value1: 'a',
34 value2: 'a',
35 equal: true
36 },
37 {
38 description: 'not equal strings',
39 value1: 'a',
40 value2: 'b',
41 equal: false
42 },
43 {
44 description: 'empty string and null are not equal',
45 value1: '',
46 value2: null,
47 equal: false
48 },
49 {
50 description: 'null is equal to null',
51 value1: null,
52 value2: null,
53 equal: true
54 },
55 {
56 description: 'equal booleans (true)',
57 value1: true,
58 value2: true,
59 equal: true
60 },
61 {
62 description: 'equal booleans (false)',
63 value1: false,
64 value2: false,
65 equal: true
66 },
67 {
68 description: 'not equal booleans',
69 value1: true,
70 value2: false,
71 equal: false
72 },
73 {
74 description: '1 and true are not equal',
75 value1: 1,
76 value2: true,
77 equal: false
78 },
79 {
80 description: '0 and false are not equal',
81 value1: 0,
82 value2: false,
83 equal: false
84 }
85 ]
86 },
87
88 {
89 description: 'objects',
90 tests: [
91 {
92 description: 'empty objects are equal',
93 value1: {},
94 value2: {},
95 equal: true
96 },
97 {
98 description: 'equal objects (same properties "order")',
99 value1: {a: 1, b: '2'},
100 value2: {a: 1, b: '2'},
101 equal: true
102 },
103 {
104 description: 'equal objects (different properties "order")',
105 value1: {a: 1, b: '2'},
106 value2: {b: '2', a: 1},
107 equal: true
108 },
109 {
110 description: 'not equal objects (extra property)',
111 value1: {a: 1, b: '2'},
112 value2: {a: 1, b: '2', c: []},
113 equal: false
114 },
115 {
116 description: 'not equal objects (different properties)',
117 value1: {a: 1, b: '2', c: 3},
118 value2: {a: 1, b: '2', d: 3},
119 equal: false
120 },
121 {
122 description: 'not equal objects (different properties)',
123 value1: {a: 1, b: '2', c: 3},
124 value2: {a: 1, b: '2', d: 3},
125 equal: false
126 },
127 {
128 description: 'equal objects (same sub-properties)',
129 value1: { a: [ { b: 'c' } ] },
130 value2: { a: [ { b: 'c' } ] },
131 equal: true
132 },
133 {
134 description: 'not equal objects (different sub-property value)',
135 value1: { a: [ { b: 'c' } ] },
136 value2: { a: [ { b: 'd' } ] },
137 equal: false
138 },
139 {
140 description: 'not equal objects (different sub-property)',
141 value1: { a: [ { b: 'c' } ] },
142 value2: { a: [ { c: 'c' } ] },
143 equal: false
144 },
145 {
146 description: 'empty array and empty object are not equal',
147 value1: {},
148 value2: [],
149 equal: false
150 }
151 ]
152 },
153
154 {
155 description: 'arrays',
156 tests: [
157 {
158 description: 'two empty arrays are equal',
159 value1: [],
160 value2: [],
161 equal: true
162 },
163 {
164 description: 'equal arrays',
165 value1: [1, 2, 3],
166 value2: [1, 2, 3],
167 equal: true
168 },
169 {
170 description: 'not equal arrays (different item)',
171 value1: [1, 2, 3],
172 value2: [1, 2, 4],
173 equal: false
174 },
175 {
176 description: 'not equal arrays (different length)',
177 value1: [1, 2, 3],
178 value2: [1, 2],
179 equal: false
180 },
181 {
182 description: 'equal arrays of objects',
183 value1: [{a: 'a'}, {b: 'b'}],
184 value2: [{a: 'a'}, {b: 'b'}],
185 equal: true
186 },
187 {
188 description: 'not equal arrays of objects',
189 value1: [{a: 'a'}, {b: 'b'}],
190 value2: [{a: 'a'}, {b: 'c'}],
191 equal: false
192 },
193 {
194 description: 'pseudo array and equivalent array are not equal',
195 value1: {'0': 0, '1': 1, length: 2},
196 value2: [0, 1],
197 equal: false
198 }
199 ]
200 },
201 {
202 description: 'Date objects',
203 tests: [
204 {
205 description: 'equal date objects',
206 value1: new Date('2017-06-16T21:36:48.362Z'),
207 value2: new Date('2017-06-16T21:36:48.362Z'),
208 equal: true
209 },
210 {
211 description: 'not equal date objects',
212 value1: new Date('2017-06-16T21:36:48.362Z'),
213 value2: new Date('2017-01-01T00:00:00.000Z'),
214 equal: false
215 },
216 {
217 description: 'date and string are not equal',
218 value1: new Date('2017-06-16T21:36:48.362Z'),
219 value2: '2017-06-16T21:36:48.362Z',
220 equal: false
221 },
222 {
223 description: 'date and object are not equal',
224 value1: new Date('2017-06-16T21:36:48.362Z'),
225 value2: {},
226 equal: false
227 }
228 ]
229 },
230 {
231 description: 'RegExp objects',
232 tests: [
233 {
234 description: 'equal RegExp objects',
235 value1: /foo/,
236 value2: /foo/,
237 equal: true
238 },
239 {
240 description: 'not equal RegExp objects (different pattern)',
241 value1: /foo/,
242 value2: /bar/,
243 equal: false
244 },
245 {
246 description: 'not equal RegExp objects (different flags)',
247 value1: /foo/,
248 value2: /foo/i,
249 equal: false
250 },
251 {
252 description: 'RegExp and string are not equal',
253 value1: /foo/,
254 value2: 'foo',
255 equal: false
256 },
257 {
258 description: 'RegExp and object are not equal',
259 value1: /foo/,
260 value2: {},
261 equal: false
262 }
263 ]
264 }
265];