Test migration to jest by hand
Apparently using regular expressions is way easier.
This commit is contained in:
11
test/equals/equals.js
Normal file
11
test/equals/equals.js
Normal file
@ -0,0 +1,11 @@
|
||||
const equals = (a, b) => {
|
||||
if (a === b) return true;
|
||||
if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();
|
||||
if (!a || !b || (typeof a != 'object' && typeof b !== 'object')) return a === b;
|
||||
if (a === null || a === undefined || b === null || b === undefined) return false;
|
||||
if (a.prototype !== b.prototype) return false;
|
||||
let keys = Object.keys(a);
|
||||
if (keys.length !== Object.keys(b).length) return false;
|
||||
return keys.every(k => equals(a[k], b[k]));
|
||||
};
|
||||
module.exports = equals;
|
||||
22
test/equals/equals.test.js
Normal file
22
test/equals/equals.test.js
Normal file
@ -0,0 +1,22 @@
|
||||
const expect = require('expect');
|
||||
const equals = require('./equals.js');
|
||||
|
||||
|
||||
test('equals is a Function', () => {
|
||||
expect(equals).toBeInstanceOf(Function);
|
||||
});
|
||||
t.true(equals({ a: [2, {e: 3}], b: [4], c: 'foo' }, { a: [2, {e: 3}], b: [4], c: 'foo' }), "{ a: [2, {e: 3}], b: [4], c: 'foo' } is equal to { a: [2, {e: 3}], b: [4], c: 'foo' }");
|
||||
test('[1,2,3] is equal to [1,2,3]', () => {
|
||||
expect(equals([1, 2, 3], [1, 2, 3])).toBeTruthy();
|
||||
});
|
||||
test('{ a: [2, 3], b: [4] } is not equal to { a: [2, 3], b: [6] }', () => {
|
||||
expect(equals({ a: [2, 3], b: [4] }, { a: [2, 3], b: [6] })).toBeFalsy();
|
||||
});
|
||||
test('[1,2,3] is not equal to [1,2,4]', () => {
|
||||
expect(equals([1, 2, 3], [1, 2, 4])).toBeFalsy();
|
||||
});
|
||||
test('[1, 2, 3] should be equal to { 0: 1, 1: 2, 2: 3 }) - type is different, but their enumerable properties match.', () => {
|
||||
expect(equals([1, 2, 3], { 0: 1, 1: 2, 2: 3 })).toBeTruthy();
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user