@api3/contracts
Version:
Contracts through which API3 services are delivered
44 lines • 2.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const deep_equal_1 = require("./deep-equal");
describe('deepEqual', () => {
it('primitive values', () => {
expect((0, deep_equal_1.deepEqual)(1, 1)).toBe(true);
expect((0, deep_equal_1.deepEqual)('hello', 'hello')).toBe(true);
expect((0, deep_equal_1.deepEqual)(true, true)).toBe(true);
expect((0, deep_equal_1.deepEqual)(1, '1')).toBe(false);
expect((0, deep_equal_1.deepEqual)(true, 1)).toBe(false);
});
it('arrays', () => {
expect((0, deep_equal_1.deepEqual)([1, 2, 3], [1, 2, 3])).toBe(true);
expect((0, deep_equal_1.deepEqual)([1, [2, 3]], [1, [2, 3]])).toBe(true);
expect((0, deep_equal_1.deepEqual)([1, 2, 3], [1, 2, 3, 4])).toBe(false);
expect((0, deep_equal_1.deepEqual)([1, [2, 3]], [1, [2, 4]])).toBe(false);
});
it('objects', () => {
const obj1 = { a: 1, b: { c: 2, d: { e: 3 } } };
const obj2 = { a: 1, b: { c: 2, d: { e: 3 } } };
const obj3 = { a: 1, b: { c: 2, d: { e: 4 } } };
expect((0, deep_equal_1.deepEqual)(obj1, obj2)).toBe(true);
expect((0, deep_equal_1.deepEqual)(obj1, obj3)).toBe(false);
});
it('objects with different key orders', () => {
const obj1 = { a: 1, b: 2, c: 3 };
const obj2 = { b: 2, a: 1, c: 3 };
expect((0, deep_equal_1.deepEqual)(obj1, obj2)).toBe(true);
});
it('null and undefined values', () => {
expect((0, deep_equal_1.deepEqual)(null, null)).toBe(true);
expect((0, deep_equal_1.deepEqual)(undefined, undefined)).toBe(true);
expect((0, deep_equal_1.deepEqual)({ a: null }, { a: null })).toBe(true);
expect((0, deep_equal_1.deepEqual)(null, undefined)).toBe(false);
expect((0, deep_equal_1.deepEqual)({ a: null }, { a: undefined })).toBe(false);
});
it('function values', () => {
const func1 = () => { };
const func2 = () => { };
expect((0, deep_equal_1.deepEqual)(func1, func1)).toBe(true);
expect((0, deep_equal_1.deepEqual)(func1, func2)).toBe(false);
});
});
//# sourceMappingURL=deep-equal.test.js.map