Adds new configuration option to failSpecWithNoExpectations that will report specs without expectations as failures if enabled

This commit is contained in:
Dmitriy T
2019-08-22 16:08:43 -04:00
committed by Steve Gravrock
parent e8870db8d3
commit 7263a38c3f
9 changed files with 172 additions and 48 deletions

View File

@@ -112,12 +112,13 @@ jasmineRequire.HtmlReporter = function(j$) {
this.specDone = function(result) {
stateBuilder.specDone(result);
if (
noExpectations(result) &&
typeof console !== 'undefined' &&
typeof console.error !== 'undefined'
) {
console.warn("Spec '" + result.fullName + "' has no expectations.");
if (noExpectations(result)) {
var noSpecMsg = "Spec '" + result.fullName + "' has no expectations.";
if (result.status === 'failed') {
console.error(noSpecMsg);
} else {
console.warn(noSpecMsg);
}
}
if (!symbols) {
@@ -140,7 +141,7 @@ jasmineRequire.HtmlReporter = function(j$) {
};
this.displaySpecInCorrectFormat = function(result) {
return noExpectations(result)
return noExpectations(result) && result.status === 'passed'
? 'jasmine-empty'
: this.resultStatus(result.status);
};
@@ -363,6 +364,16 @@ jasmineRequire.HtmlReporter = function(j$) {
);
}
if (result.failedExpectations.length === 0) {
messages.appendChild(
createDom(
'div',
{ className: 'jasmine-result-message' },
'Spec has no expectations'
)
);
}
return failure;
}
@@ -654,9 +665,12 @@ jasmineRequire.HtmlReporter = function(j$) {
}
function noExpectations(result) {
var allExpectations =
result.failedExpectations.length + result.passedExpectations.length;
return (
result.failedExpectations.length + result.passedExpectations.length ===
0 && result.status === 'passed'
allExpectations === 0 &&
(result.status === 'passed' || result.status === 'failed')
);
}