UNPKG

assertthat

Version:
41 lines (40 loc) 1.51 kB
"use strict"; 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;