assertthat
Version:
assertthat provides fluent TDD.
41 lines (40 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.compareResults = void 0;
const compare_1 = require("../typeAware/compare");
const costs_1 = require("../../constants/costs");
const EqualDiff_1 = require("../../diffs/EqualDiff");
const ResultDiff_1 = require("../../diffs/forResults/ResultDiff");
const compareResults = function (actual, expected) {
if (actual.hasValue()) {
if (expected.hasError()) {
return (0, ResultDiff_1.expectedErrorGotValueResultDiff)({
cost: costs_1.unequalResultCost,
expected,
actual
});
}
const diffValue = (0, compare_1.compare)(actual.value, expected.value);
if (diffValue.cost === 0) {
return (0, EqualDiff_1.equalDiff)({
value: actual
});
}
return (0, ResultDiff_1.unequalValueResultDiff)({ diff: diffValue, cost: diffValue.cost });
}
if (expected.hasValue()) {
return (0, ResultDiff_1.expectedValueGotErrorResultDiff)({
cost: costs_1.unequalResultCost,
expected,
actual
});
}
const diffError = (0, compare_1.compare)(actual.error, expected.error);
if (diffError.cost === 0) {
return (0, EqualDiff_1.equalDiff)({
value: actual
});
}
return (0, ResultDiff_1.unequalErrorResultDiff)({ diff: diffError, cost: diffError.cost });
};
exports.compareResults = compareResults;