diff --git a/lib/jasmine-core/jasmine-html.js b/lib/jasmine-core/jasmine-html.js index 04dd86ed..c14548cc 100644 --- a/lib/jasmine-core/jasmine-html.js +++ b/lib/jasmine-core/jasmine-html.js @@ -422,7 +422,6 @@ jasmineRequire.AlertsView = function(j$) { } addSkipped(numExecuted, numDefined) { - // TODO: backfill tests for this this.add( 'jasmine-bar jasmine-skipped', createDom( @@ -469,7 +468,6 @@ jasmineRequire.AlertsView = function(j$) { this.add(errorBarClassName, this.#globalFailureMessage(failure)); } - // TODO check test coverage addSeedBar(doneResult, stateBuilder, order) { let statusBarMessage = ''; let statusBarClassName = 'jasmine-overall-result jasmine-bar '; @@ -521,7 +519,6 @@ jasmineRequire.AlertsView = function(j$) { this.add(statusBarClassName, [statusBarMessage, seedBar]); } - // TODO check test coverage #globalFailureMessage(failure) { if (failure.globalErrorType === 'load') { const prefix = 'Error during loading: ' + failure.message; @@ -746,7 +743,6 @@ jasmineRequire.Banner = function(j$) { '#jasmine-hide-disabled' ); hideDisabled.checked = config.hideDisabled; - // TODO: backfill tests for this! hideDisabled.onclick = () => { this.#navigateWithNewParam('hideDisabled', !config.hideDisabled); }; diff --git a/spec/html/HtmlReporterSpec.js b/spec/html/HtmlReporterSpec.js index 98440237..bee97735 100644 --- a/spec/html/HtmlReporterSpec.js +++ b/spec/html/HtmlReporterSpec.js @@ -883,16 +883,19 @@ describe('HtmlReporter', function() { ); }); }); + describe('UI for hiding disabled specs', function() { it('should be unchecked if not hiding disabled specs', function() { - const container = document.createElement('div'), - getContainer = function() { - return container; - }, - reporter = new jasmineUnderTest.HtmlReporter({ - env: env, - getContainer: getContainer - }); + const container = document.createElement('div'); + const getContainer = function() { + return container; + }; + const navigateHandler = jasmine.createSpy('navigate'); + const reporter = new jasmineUnderTest.HtmlReporter({ + env: env, + getContainer: getContainer, + navigateWithNewParam: navigateHandler + }); env.configure({ hideDisabled: false }); reporter.initialize(); @@ -900,17 +903,22 @@ describe('HtmlReporter', function() { const disabledUI = container.querySelector('.jasmine-disabled'); expect(disabledUI.checked).toBe(false); + + disabledUI.click(); + expect(navigateHandler).toHaveBeenCalledWith('hideDisabled', true); }); it('should be checked if hiding disabled', function() { - const container = document.createElement('div'), - getContainer = function() { - return container; - }, - reporter = new jasmineUnderTest.HtmlReporter({ - env: env, - getContainer: getContainer - }); + const container = document.createElement('div'); + const getContainer = function() { + return container; + }; + const navigateHandler = jasmine.createSpy('navigate'); + const reporter = new jasmineUnderTest.HtmlReporter({ + env: env, + getContainer: getContainer, + navigateWithNewParam: navigateHandler + }); env.configure({ hideDisabled: true }); reporter.initialize(); @@ -918,6 +926,9 @@ describe('HtmlReporter', function() { const disabledUI = container.querySelector('.jasmine-disabled'); expect(disabledUI.checked).toBe(true); + + disabledUI.click(); + expect(navigateHandler).toHaveBeenCalledWith('hideDisabled', false); }); it('should not display specs that have been disabled', function() { @@ -946,6 +957,7 @@ describe('HtmlReporter', function() { ); }); }); + describe('UI for running tests in random order', function() { it('should be unchecked if not randomizing', function() { const container = document.createElement('div'), @@ -1068,6 +1080,34 @@ describe('HtmlReporter', function() { expect(seedBar).toBeNull(); }); + it('includes the number of specs in the text of the jasmine-skipped link', function() { + const container = document.createElement('div'); + const reporter = new jasmineUnderTest.HtmlReporter({ + env: env, + getContainer: function() { + return container; + }, + addToExistingQueryString: function(key, value) { + return '?foo=bar&' + key + '=' + value; + } + }); + + reporter.initialize(); + const minimalSpecDone = { + failedExpectations: [], + passedExpectations: [] + }; + + reporter.jasmineStarted({ totalSpecsDefined: 3 }); + reporter.specDone({ ...minimalSpecDone }); + reporter.specDone({ ...minimalSpecDone }); + reporter.specDone({ ...minimalSpecDone, status: 'excluded' }); + reporter.jasmineDone({}); + + const skippedLink = container.querySelector('.jasmine-skipped a'); + expect(skippedLink.textContent).toEqual('Ran 2 of 3 specs - run all'); + }); + it('should include non-spec query params in the jasmine-skipped link when present', function() { const container = document.createElement('div'), reporter = new jasmineUnderTest.HtmlReporter({ diff --git a/spec/html/HtmlReporterV2Spec.js b/spec/html/HtmlReporterV2Spec.js index ab0cf087..788c6e9c 100644 --- a/spec/html/HtmlReporterV2Spec.js +++ b/spec/html/HtmlReporterV2Spec.js @@ -695,6 +695,25 @@ describe('HtmlReporterV2', function() { expect(seedBar).toBeNull(); }); + it('includes the number of specs in the text of the jasmine-skipped link', function() { + const reporter = setup(); + + reporter.initialize(); + const minimalSpecDone = { + failedExpectations: [], + passedExpectations: [] + }; + + reporter.jasmineStarted({ totalSpecsDefined: 3 }); + reporter.specDone({ ...minimalSpecDone }); + reporter.specDone({ ...minimalSpecDone }); + reporter.specDone({ ...minimalSpecDone, status: 'excluded' }); + reporter.jasmineDone({}); + + const skippedLink = container.querySelector('.jasmine-skipped a'); + expect(skippedLink.textContent).toEqual('Ran 2 of 3 specs - run all'); + }); + it('should include non-spec query params in the jasmine-skipped link when present', function() { const reporter = setup({ addToExistingQueryString: function(key, value) { diff --git a/src/html/AlertsView.js b/src/html/AlertsView.js index 2d7805a3..1456be87 100644 --- a/src/html/AlertsView.js +++ b/src/html/AlertsView.js @@ -18,7 +18,6 @@ jasmineRequire.AlertsView = function(j$) { } addSkipped(numExecuted, numDefined) { - // TODO: backfill tests for this this.add( 'jasmine-bar jasmine-skipped', createDom( @@ -65,7 +64,6 @@ jasmineRequire.AlertsView = function(j$) { this.add(errorBarClassName, this.#globalFailureMessage(failure)); } - // TODO check test coverage addSeedBar(doneResult, stateBuilder, order) { let statusBarMessage = ''; let statusBarClassName = 'jasmine-overall-result jasmine-bar '; @@ -117,7 +115,6 @@ jasmineRequire.AlertsView = function(j$) { this.add(statusBarClassName, [statusBarMessage, seedBar]); } - // TODO check test coverage #globalFailureMessage(failure) { if (failure.globalErrorType === 'load') { const prefix = 'Error during loading: ' + failure.message; diff --git a/src/html/Banner.js b/src/html/Banner.js index d24302c3..f3e93377 100644 --- a/src/html/Banner.js +++ b/src/html/Banner.js @@ -133,7 +133,6 @@ jasmineRequire.Banner = function(j$) { '#jasmine-hide-disabled' ); hideDisabled.checked = config.hideDisabled; - // TODO: backfill tests for this! hideDisabled.onclick = () => { this.#navigateWithNewParam('hideDisabled', !config.hideDisabled); };