earljs
Version:
Ergonomic, modern and type-safe assertion library
23 lines (22 loc) • 1.09 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.toReferentiallyEqual = void 0;
const format_1 = require("../format");
const isEqual_1 = require("../isEqual");
function toReferentiallyEqual(control, expected) {
const smartEqComparisonResult = (0, isEqual_1.isEqual)(control.actual, expected);
const strictComparisonResult = Object.is(control.actual, expected);
const additionalInfo = !strictComparisonResult && smartEqComparisonResult ? '. Did you mean to use `toEqual` instead?' : '';
const actualFmt = (0, format_1.formatCompact)(control.actual);
const expectedFmt = (0, format_1.formatCompact)(expected);
const reason = `${actualFmt} is not ${expectedFmt}${additionalInfo}`;
const negatedReason = `${actualFmt} is ${expectedFmt}`;
control.assert({
success: strictComparisonResult,
reason,
negatedReason,
actual: (0, format_1.format)(control.actual, null),
expected: (0, format_1.format)(expected, control.actual),
});
}
exports.toReferentiallyEqual = toReferentiallyEqual;
;