Merge branch 'apla-master'

- Merges #1678 from @apla
This commit is contained in:
Gregg Van Hove
2019-09-23 16:47:33 -07:00
4 changed files with 69 additions and 4 deletions

View File

@@ -70,7 +70,7 @@ var getJasmineRequireObj = (function(jasmineGlobal) {
j$.ExpectationFilterChain = jRequire.ExpectationFilterChain();
j$.Expector = jRequire.Expector(j$);
j$.Expectation = jRequire.Expectation(j$);
j$.buildExpectationResult = jRequire.buildExpectationResult();
j$.buildExpectationResult = jRequire.buildExpectationResult(j$);
j$.noopTimer = jRequire.noopTimer();
j$.JsApiReporter = jRequire.JsApiReporter(j$);
j$.matchersUtil = jRequire.matchersUtil(j$);
@@ -3531,7 +3531,7 @@ getJasmineRequireObj().ExpectationFilterChain = function() {
};
//TODO: expectation result may make more sense as a presentation of an expectation.
getJasmineRequireObj().buildExpectationResult = function() {
getJasmineRequireObj().buildExpectationResult = function(j$) {
function buildExpectationResult(options) {
var messageFormatter = options.messageFormatter || function() {},
stackFormatter = options.stackFormatter || function() {};
@@ -3555,6 +3555,22 @@ getJasmineRequireObj().buildExpectationResult = function() {
if (!result.passed) {
result.expected = options.expected;
result.actual = options.actual;
if (options.error && !j$.isString_(options.error)) {
if ('code' in options.error) {
result.code = options.error.code;
}
if (
options.error.code === 'ERR_ASSERTION' &&
options.expected === '' &&
options.actual === ''
) {
result.expected = options.error.expected;
result.actual = options.error.actual;
result.matcherName = 'assert ' + options.error.operator;
}
}
}
return result;

View File

@@ -90,4 +90,37 @@ describe('buildExpectationResult', function() {
});
expect(result.actual).toBe('some-value');
});
it('handles nodejs assertions', function() {
if (typeof require === 'undefined') {
return;
}
var assert = require('assert');
var error;
var value = 8421;
var expectedValue = 'JasmineExpectationTestValue';
try {
assert.equal(value, expectedValue);
} catch (e) {
error = e;
}
expect(error.code).toEqual('ERR_ASSERTION');
expect(error.actual).toEqual(value);
expect(error.expected).toEqual(expectedValue);
expect(error.operator).toEqual('==');
var result = jasmineUnderTest.buildExpectationResult({
passed: false,
matcherName: '',
expected: '',
actual: '',
error: error
});
expect(result.code).toEqual('ERR_ASSERTION');
expect(result.actual).toEqual(value);
expect(result.expected).toEqual(expectedValue);
expect(result.matcherName).toEqual('assert ==');
});
});

View File

@@ -1,5 +1,5 @@
//TODO: expectation result may make more sense as a presentation of an expectation.
getJasmineRequireObj().buildExpectationResult = function() {
getJasmineRequireObj().buildExpectationResult = function(j$) {
function buildExpectationResult(options) {
var messageFormatter = options.messageFormatter || function() {},
stackFormatter = options.stackFormatter || function() {};
@@ -23,6 +23,22 @@ getJasmineRequireObj().buildExpectationResult = function() {
if (!result.passed) {
result.expected = options.expected;
result.actual = options.actual;
if (options.error && !j$.isString_(options.error)) {
if ('code' in options.error) {
result.code = options.error.code;
}
if (
options.error.code === 'ERR_ASSERTION' &&
options.expected === '' &&
options.actual === ''
) {
result.expected = options.error.expected;
result.actual = options.error.actual;
result.matcherName = 'assert ' + options.error.operator;
}
}
}
return result;

View File

@@ -48,7 +48,7 @@ var getJasmineRequireObj = (function(jasmineGlobal) {
j$.ExpectationFilterChain = jRequire.ExpectationFilterChain();
j$.Expector = jRequire.Expector(j$);
j$.Expectation = jRequire.Expectation(j$);
j$.buildExpectationResult = jRequire.buildExpectationResult();
j$.buildExpectationResult = jRequire.buildExpectationResult(j$);
j$.noopTimer = jRequire.noopTimer();
j$.JsApiReporter = jRequire.JsApiReporter(j$);
j$.matchersUtil = jRequire.matchersUtil(j$);