@giancosta86/more-jest
Version:
TypeScript utilities for Jest
50 lines • 2.04 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.Equality = void 0;
const globals_1 = require("@jest/globals");
const swan_lake_1 = require("@giancosta86/swan-lake");
function createEqualityTesterFor(classType) {
return function (left, right) {
if (!(left instanceof classType) || !(right instanceof classType)) {
return;
}
return swan_lake_1.Optional.equals(left, right);
};
}
var Equality;
(function (Equality) {
function addTesterFor(classType) {
const equalityTester = createEqualityTesterFor(classType);
globals_1.expect.addEqualityTesters([equalityTester]);
}
Equality.addTesterFor = addTesterFor;
function test(factory, differentFactory) {
describe("equality", () => {
it("should work", () => {
const left = factory();
const right = factory();
(0, globals_1.expect)(left).toEqual(right);
(0, globals_1.expect)(right).toEqual(left);
});
it("should support arrays", () => {
const leftArray = [factory()];
const rightArray = [factory()];
(0, globals_1.expect)(leftArray).toEqual(rightArray);
(0, globals_1.expect)(rightArray).toEqual(leftArray);
});
it("should detect differences", () => {
const value = factory();
const different = differentFactory();
(0, globals_1.expect)(value).not.toEqual(different);
(0, globals_1.expect)(different).not.toEqual(value);
});
it("should detect undefined", () => {
const value = factory();
(0, globals_1.expect)(value).not.toEqual(undefined);
(0, globals_1.expect)(undefined).not.toEqual(value);
});
});
}
Equality.test = test;
})(Equality = exports.Equality || (exports.Equality = {}));
//# sourceMappingURL=equality.js.map
;