Skip to content

Commit

Permalink
Merge branch 'hide-grey-specs' of https://github.com/SamFare/jasmine
Browse files Browse the repository at this point in the history
…into SamFare-hide-grey-specs

- Merges #1561 from @SamFare
  • Loading branch information
Gregg Van Hove committed May 24, 2018
2 parents e2d9eef + 92d33c7 commit 3636014
Show file tree
Hide file tree
Showing 9 changed files with 162 additions and 7 deletions.
3 changes: 3 additions & 0 deletions lib/jasmine-core/boot.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

var throwingExpectationFailures = queryString.getParam("throwFailures");
env.throwOnExpectationFailure(throwingExpectationFailures);

var hideDisabled = queryString.getParam("hideDisabled");
env.hideDisabled(hideDisabled);

var random = queryString.getParam("random");

Expand Down
3 changes: 3 additions & 0 deletions lib/jasmine-core/boot/boot.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@

var throwingExpectationFailures = queryString.getParam("throwFailures");
env.throwOnExpectationFailure(throwingExpectationFailures);

var hideDisabled = queryString.getParam("hideDisabled");
env.hideDisabled(hideDisabled);

var random = queryString.getParam("random");

Expand Down
28 changes: 26 additions & 2 deletions lib/jasmine-core/jasmine-html.js
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ jasmineRequire.HtmlReporter = function(j$) {
}

symbols.appendChild(createDom('li', {
className: noExpectations(result) ? 'jasmine-empty' : 'jasmine-' + result.status,
className: this.displaySpecInCorrectFormat(result),
id: 'spec_' + result.id,
title: result.fullName
}
Expand All @@ -161,6 +161,17 @@ jasmineRequire.HtmlReporter = function(j$) {
addDeprecationWarnings(result);
};

this.displaySpecInCorrectFormat = function(result) {
return noExpectations(result) ? 'jasmine-empty' : this.resultStatus(result.status);
};

this.resultStatus = function(status) {
if(status === 'excluded') {
return env.hidingDisabled() ? 'jasmine-excluded-no-display' : 'jasmine-excluded';
}
return 'jasmine-' + status;
};

this.jasmineDone = function(doneResult) {
var banner = find('.jasmine-banner');
var alert = find('.jasmine-alert');
Expand Down Expand Up @@ -352,7 +363,14 @@ jasmineRequire.HtmlReporter = function(j$) {
id: 'jasmine-random-order',
type: 'checkbox'
}),
createDom('label', { className: 'jasmine-label', 'for': 'jasmine-random-order' }, 'run tests in random order'))
createDom('label', { className: 'jasmine-label', 'for': 'jasmine-random-order' }, 'run tests in random order')),
createDom('div', { className: 'jasmine-hide-disabled' },
createDom('input', {
className: 'jasmine-disabled',
id: 'jasmine-hide-disabled',
type: 'checkbox'
}),
createDom('label', { className: 'jasmine-label', 'for': 'jasmine-hide-disabled' }, 'hide disabled tests'))
)
);

Expand All @@ -374,6 +392,12 @@ jasmineRequire.HtmlReporter = function(j$) {
navigateWithNewParam('random', !env.randomTests());
};

var hideDisabled = optionsMenuDom.querySelector('#jasmine-hide-disabled');
hideDisabled.checked = env.hidingDisabled();
hideDisabled.onclick = function() {
navigateWithNewParam('hideDisabled', !env.hidingDisabled());
};

var optionsTrigger = optionsMenuDom.querySelector('.jasmine-trigger'),
optionsPayload = optionsMenuDom.querySelector('.jasmine-payload'),
isOpen = /\bjasmine-open\b/;
Expand Down
1 change: 1 addition & 0 deletions lib/jasmine-core/jasmine.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions lib/jasmine-core/jasmine.js
Original file line number Diff line number Diff line change
Expand Up @@ -791,6 +791,7 @@ getJasmineRequireObj().Env = function(j$) {
var throwOnExpectationFailure = false;
var stopOnSpecFailure = false;
var random = true;
var hidingDisabled = false;
var seed = null;
var handlingLoadErrors = true;
var hasFailures = false;
Expand Down Expand Up @@ -959,6 +960,14 @@ getJasmineRequireObj().Env = function(j$) {
random = !!value;
};

this.hidingDisabled = function(value) {
return hidingDisabled;
};

this.hideDisabled = function(value) {
hidingDisabled = !!value;
};

this.randomTests = function() {
return random;
};
Expand Down
79 changes: 78 additions & 1 deletion spec/html/HtmlReporterSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@ describe("HtmlReporter", function() {
createTextNode: function() { return document.createTextNode.apply(document, arguments); }
});
reporter.initialize();

reporter.specDone({id: 789, status: "excluded", fullName: "symbols should have titles", passedExpectations: [], failedExpectations: []});

var specEl = container.querySelector('.jasmine-symbol-summary li');
Expand Down Expand Up @@ -696,7 +695,85 @@ describe("HtmlReporter", function() {
expect(navigateHandler).toHaveBeenCalledWith('throwFailures', false);
});
});
describe("UI for hiding disabled specs", function() {
it("should be unchecked if not hiding disabled specs", function() {
var env = new jasmineUnderTest.Env(),
container = document.createElement("div"),
getContainer = function() {
return container;
},
reporter = new jasmineUnderTest.HtmlReporter({
env: env,
getContainer: getContainer,
createElement: function() {
return document.createElement.apply(document, arguments);
},
createTextNode: function() {
return document.createTextNode.apply(document, arguments);
}
});

env.hideDisabled(false);
reporter.initialize();
reporter.jasmineDone({});

var disabledUI = container.querySelector(".jasmine-disabled");
expect(disabledUI.checked).toBe(false);
});

it("should be checked if hiding disabled", function() {
var env = new jasmineUnderTest.Env(),
container = document.createElement("div"),
getContainer = function() {
return container;
},
reporter = new jasmineUnderTest.HtmlReporter({
env: env,
getContainer: getContainer,
createElement: function() {
return document.createElement.apply(document, arguments);
},
createTextNode: function() {
return document.createTextNode.apply(document, arguments);
}
});

env.hideDisabled(true);
reporter.initialize();
reporter.jasmineDone({});

var disabledUI = container.querySelector(".jasmine-disabled");
expect(disabledUI.checked).toBe(true);
});

it("should not display specs that have been disabled", function() {
var env = new jasmineUnderTest.Env(),
container = document.createElement('div'),

getContainer = function() {return container;},

reporter = new jasmineUnderTest.HtmlReporter({
env: env,
getContainer: getContainer,
createElement: function() { return document.createElement.apply(document, arguments); },
createTextNode: function() { return document.createTextNode.apply(document, arguments); }
});
env.hideDisabled(true);
reporter.initialize();
reporter.specDone({
id: 789,
status: "excluded",
fullName: "symbols should have titles",
passedExpectations: [],
failedExpectations: []
});



var specEl = container.querySelector('.jasmine-symbol-summary li');
expect(specEl.getAttribute("class")).toEqual("jasmine-excluded-no-display");
});
});
describe("UI for running tests in random order", function() {
it("should be unchecked if not randomizing", function() {
var env = new jasmineUnderTest.Env(),
Expand Down
9 changes: 9 additions & 0 deletions src/core/Env.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ getJasmineRequireObj().Env = function(j$) {
var throwOnExpectationFailure = false;
var stopOnSpecFailure = false;
var random = true;
var hidingDisabled = false;
var seed = null;
var handlingLoadErrors = true;
var hasFailures = false;
Expand Down Expand Up @@ -194,6 +195,14 @@ getJasmineRequireObj().Env = function(j$) {
random = !!value;
};

this.hidingDisabled = function(value) {
return hidingDisabled;
};

this.hideDisabled = function(value) {
hidingDisabled = !!value;
};

this.randomTests = function() {
return random;
};
Expand Down
28 changes: 26 additions & 2 deletions src/html/HtmlReporter.js
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ jasmineRequire.HtmlReporter = function(j$) {
}

symbols.appendChild(createDom('li', {
className: noExpectations(result) ? 'jasmine-empty' : 'jasmine-' + result.status,
className: this.displaySpecInCorrectFormat(result),
id: 'spec_' + result.id,
title: result.fullName
}
Expand All @@ -132,6 +132,17 @@ jasmineRequire.HtmlReporter = function(j$) {
addDeprecationWarnings(result);
};

this.displaySpecInCorrectFormat = function(result) {
return noExpectations(result) ? 'jasmine-empty' : this.resultStatus(result.status);
};

this.resultStatus = function(status) {
if(status === 'excluded') {
return env.hidingDisabled() ? 'jasmine-excluded-no-display' : 'jasmine-excluded';
}
return 'jasmine-' + status;
};

this.jasmineDone = function(doneResult) {
var banner = find('.jasmine-banner');
var alert = find('.jasmine-alert');
Expand Down Expand Up @@ -323,7 +334,14 @@ jasmineRequire.HtmlReporter = function(j$) {
id: 'jasmine-random-order',
type: 'checkbox'
}),
createDom('label', { className: 'jasmine-label', 'for': 'jasmine-random-order' }, 'run tests in random order'))
createDom('label', { className: 'jasmine-label', 'for': 'jasmine-random-order' }, 'run tests in random order')),
createDom('div', { className: 'jasmine-hide-disabled' },
createDom('input', {
className: 'jasmine-disabled',
id: 'jasmine-hide-disabled',
type: 'checkbox'
}),
createDom('label', { className: 'jasmine-label', 'for': 'jasmine-hide-disabled' }, 'hide disabled tests'))
)
);

Expand All @@ -345,6 +363,12 @@ jasmineRequire.HtmlReporter = function(j$) {
navigateWithNewParam('random', !env.randomTests());
};

var hideDisabled = optionsMenuDom.querySelector('#jasmine-hide-disabled');
hideDisabled.checked = env.hidingDisabled();
hideDisabled.onclick = function() {
navigateWithNewParam('hideDisabled', !env.hidingDisabled());
};

var optionsTrigger = optionsMenuDom.querySelector('.jasmine-trigger'),
optionsPayload = optionsMenuDom.querySelector('.jasmine-payload'),
isOpen = /\bjasmine-open\b/;
Expand Down
9 changes: 7 additions & 2 deletions src/html/_HTMLReporter.scss
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ body {
}
}

&.jasmine-excluded {
&.jasmine-excluded {
font-size: 14px;

&:before {
Expand All @@ -144,6 +144,11 @@ body {
}
}

&.jasmine-excluded-no-display {
font-size: 14px;
display: none;
}

&.jasmine-pending {
line-height: 17px;
&:before {
Expand Down Expand Up @@ -294,7 +299,7 @@ body {

&.jasmine-excluded a {
color: $neutral-color;
}
}
}
}

Expand Down

0 comments on commit 3636014

Please sign in to comment.