UNPKG

earljs

Version:

Ergonomic, modern and type-safe assertion library

23 lines (22 loc) 1.09 kB
"use strict"; 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;