Now pass a navigation helper to HtmlReporter instead of click handlers
This commit is contained in:
@@ -96,9 +96,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||||||
*/
|
*/
|
||||||
var htmlReporter = new jasmine.HtmlReporter({
|
var htmlReporter = new jasmine.HtmlReporter({
|
||||||
env: env,
|
env: env,
|
||||||
onStopExecutionClick: function() { queryString.navigateWithNewParam("failFast", !env.stoppingOnSpecFailure()); },
|
navigateWithNewParam: function(key, value) { return queryString.navigateWithNewParam(key, value); },
|
||||||
onThrowExpectationsClick: function() { queryString.navigateWithNewParam("throwFailures", !env.throwingExpectationFailures()); },
|
|
||||||
onRandomClick: function() { queryString.navigateWithNewParam("random", !env.randomTests()); },
|
|
||||||
addToExistingQueryString: function(key, value) { return queryString.fullStringWithNewParam(key, value); },
|
addToExistingQueryString: function(key, value) { return queryString.fullStringWithNewParam(key, value); },
|
||||||
getContainer: function() { return document.body; },
|
getContainer: function() { return document.body; },
|
||||||
createElement: function() { return document.createElement.apply(document, arguments); },
|
createElement: function() { return document.createElement.apply(document, arguments); },
|
||||||
|
|||||||
@@ -74,9 +74,7 @@
|
|||||||
*/
|
*/
|
||||||
var htmlReporter = new jasmine.HtmlReporter({
|
var htmlReporter = new jasmine.HtmlReporter({
|
||||||
env: env,
|
env: env,
|
||||||
onStopExecutionClick: function() { queryString.navigateWithNewParam("failFast", !env.stoppingOnSpecFailure()); },
|
navigateWithNewParam: function(key, value) { return queryString.navigateWithNewParam(key, value); },
|
||||||
onThrowExpectationsClick: function() { queryString.navigateWithNewParam("throwFailures", !env.throwingExpectationFailures()); },
|
|
||||||
onRandomClick: function() { queryString.navigateWithNewParam("random", !env.randomTests()); },
|
|
||||||
addToExistingQueryString: function(key, value) { return queryString.fullStringWithNewParam(key, value); },
|
addToExistingQueryString: function(key, value) { return queryString.fullStringWithNewParam(key, value); },
|
||||||
getContainer: function() { return document.body; },
|
getContainer: function() { return document.body; },
|
||||||
createElement: function() { return document.createElement.apply(document, arguments); },
|
createElement: function() { return document.createElement.apply(document, arguments); },
|
||||||
|
|||||||
@@ -85,9 +85,7 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|||||||
getContainer = options.getContainer,
|
getContainer = options.getContainer,
|
||||||
createElement = options.createElement,
|
createElement = options.createElement,
|
||||||
createTextNode = options.createTextNode,
|
createTextNode = options.createTextNode,
|
||||||
onStopExecutionClick = options.onStopExecutionClick || function() {},
|
navigateWithNewParam = options.navigateWithNewParam || function() {},
|
||||||
onThrowExpectationsClick = options.onThrowExpectationsClick || function() {},
|
|
||||||
onRandomClick = options.onRandomClick || function() {},
|
|
||||||
addToExistingQueryString = options.addToExistingQueryString || defaultQueryString,
|
addToExistingQueryString = options.addToExistingQueryString || defaultQueryString,
|
||||||
filterSpecs = options.filterSpecs,
|
filterSpecs = options.filterSpecs,
|
||||||
timer = options.timer || noopTimer,
|
timer = options.timer || noopTimer,
|
||||||
@@ -348,15 +346,21 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|||||||
|
|
||||||
var failFastCheckbox = optionsMenuDom.querySelector('#jasmine-fail-fast');
|
var failFastCheckbox = optionsMenuDom.querySelector('#jasmine-fail-fast');
|
||||||
failFastCheckbox.checked = env.stoppingOnSpecFailure();
|
failFastCheckbox.checked = env.stoppingOnSpecFailure();
|
||||||
failFastCheckbox.onclick = onStopExecutionClick;
|
failFastCheckbox.onclick = function() {
|
||||||
|
navigateWithNewParam('failFast', !env.stoppingOnSpecFailure());
|
||||||
|
};
|
||||||
|
|
||||||
var throwCheckbox = optionsMenuDom.querySelector('#jasmine-throw-failures');
|
var throwCheckbox = optionsMenuDom.querySelector('#jasmine-throw-failures');
|
||||||
throwCheckbox.checked = env.throwingExpectationFailures();
|
throwCheckbox.checked = env.throwingExpectationFailures();
|
||||||
throwCheckbox.onclick = onThrowExpectationsClick;
|
throwCheckbox.onclick = function() {
|
||||||
|
navigateWithNewParam('throwFailures', !env.throwingExpectationFailures());
|
||||||
|
};
|
||||||
|
|
||||||
var randomCheckbox = optionsMenuDom.querySelector('#jasmine-random-order');
|
var randomCheckbox = optionsMenuDom.querySelector('#jasmine-random-order');
|
||||||
randomCheckbox.checked = env.randomTests();
|
randomCheckbox.checked = env.randomTests();
|
||||||
randomCheckbox.onclick = onRandomClick;
|
randomCheckbox.onclick = function() {
|
||||||
|
navigateWithNewParam('random', !env.randomTests());
|
||||||
|
};
|
||||||
|
|
||||||
var optionsTrigger = optionsMenuDom.querySelector('.jasmine-trigger'),
|
var optionsTrigger = optionsMenuDom.querySelector('.jasmine-trigger'),
|
||||||
optionsPayload = optionsMenuDom.querySelector('.jasmine-payload'),
|
optionsPayload = optionsMenuDom.querySelector('.jasmine-payload'),
|
||||||
|
|||||||
+100
-12
@@ -487,16 +487,44 @@ describe("HtmlReporter", function() {
|
|||||||
expect(stopOnFailureUI.checked).toBe(true);
|
expect(stopOnFailureUI.checked).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should trigger the callback when changed", function() {
|
it("should navigate and turn the setting on", function() {
|
||||||
var env = new jasmineUnderTest.Env(),
|
var env = new jasmineUnderTest.Env(),
|
||||||
container = document.createElement("div"),
|
container = document.createElement("div"),
|
||||||
failFastHandler = jasmine.createSpy('failFast'),
|
navigationHandler = jasmine.createSpy('navigate'),
|
||||||
getContainer = function() {
|
getContainer = function() {
|
||||||
return container;
|
return container;
|
||||||
},
|
},
|
||||||
reporter = new jasmineUnderTest.HtmlReporter({
|
reporter = new jasmineUnderTest.HtmlReporter({
|
||||||
env: env,
|
env: env,
|
||||||
onStopExecutionClick: failFastHandler,
|
navigateWithNewParam: navigationHandler,
|
||||||
|
getContainer: getContainer,
|
||||||
|
createElement: function() {
|
||||||
|
return document.createElement.apply(document, arguments);
|
||||||
|
},
|
||||||
|
createTextNode: function() {
|
||||||
|
return document.createTextNode.apply(document, arguments);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
reporter.initialize();
|
||||||
|
reporter.jasmineDone({});
|
||||||
|
|
||||||
|
var stopOnFailureUI = container.querySelector(".jasmine-fail-fast");
|
||||||
|
stopOnFailureUI.click();
|
||||||
|
|
||||||
|
expect(navigationHandler).toHaveBeenCalledWith('failFast', true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should navigate and turn the setting off", function() {
|
||||||
|
var env = new jasmineUnderTest.Env(),
|
||||||
|
container = document.createElement("div"),
|
||||||
|
navigationHandler = jasmine.createSpy('navigate'),
|
||||||
|
getContainer = function() {
|
||||||
|
return container;
|
||||||
|
},
|
||||||
|
reporter = new jasmineUnderTest.HtmlReporter({
|
||||||
|
env: env,
|
||||||
|
navigateWithNewParam: navigationHandler,
|
||||||
getContainer: getContainer,
|
getContainer: getContainer,
|
||||||
createElement: function() {
|
createElement: function() {
|
||||||
return document.createElement.apply(document, arguments);
|
return document.createElement.apply(document, arguments);
|
||||||
@@ -514,7 +542,7 @@ describe("HtmlReporter", function() {
|
|||||||
var stopOnFailureUI = container.querySelector(".jasmine-fail-fast");
|
var stopOnFailureUI = container.querySelector(".jasmine-fail-fast");
|
||||||
stopOnFailureUI.click();
|
stopOnFailureUI.click();
|
||||||
|
|
||||||
expect(failFastHandler).toHaveBeenCalled();
|
expect(navigationHandler).toHaveBeenCalledWith('failFast', false);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -569,17 +597,17 @@ describe("HtmlReporter", function() {
|
|||||||
expect(throwingExpectationsUI.checked).toBe(true);
|
expect(throwingExpectationsUI.checked).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should affect the query param for throw expectation failures", function() {
|
it("should navigate and change the setting to on", function() {
|
||||||
var env = new jasmineUnderTest.Env(),
|
var env = new jasmineUnderTest.Env(),
|
||||||
container = document.createElement("div"),
|
container = document.createElement("div"),
|
||||||
throwingExceptionHandler = jasmine.createSpy('throwingExceptions'),
|
navigateHandler = jasmine.createSpy('navigate'),
|
||||||
getContainer = function() {
|
getContainer = function() {
|
||||||
return container;
|
return container;
|
||||||
},
|
},
|
||||||
reporter = new jasmineUnderTest.HtmlReporter({
|
reporter = new jasmineUnderTest.HtmlReporter({
|
||||||
env: env,
|
env: env,
|
||||||
getContainer: getContainer,
|
getContainer: getContainer,
|
||||||
onThrowExpectationsClick: throwingExceptionHandler,
|
navigateWithNewParam: navigateHandler,
|
||||||
createElement: function() {
|
createElement: function() {
|
||||||
return document.createElement.apply(document, arguments);
|
return document.createElement.apply(document, arguments);
|
||||||
},
|
},
|
||||||
@@ -594,7 +622,37 @@ describe("HtmlReporter", function() {
|
|||||||
var throwingExpectationsUI = container.querySelector(".jasmine-throw");
|
var throwingExpectationsUI = container.querySelector(".jasmine-throw");
|
||||||
throwingExpectationsUI.click();
|
throwingExpectationsUI.click();
|
||||||
|
|
||||||
expect(throwingExceptionHandler).toHaveBeenCalled();
|
expect(navigateHandler).toHaveBeenCalledWith('throwFailures', true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should navigate and change the setting to off", function() {
|
||||||
|
var env = new jasmineUnderTest.Env(),
|
||||||
|
container = document.createElement("div"),
|
||||||
|
navigateHandler = jasmine.createSpy('navigate'),
|
||||||
|
getContainer = function() {
|
||||||
|
return container;
|
||||||
|
},
|
||||||
|
reporter = new jasmineUnderTest.HtmlReporter({
|
||||||
|
env: env,
|
||||||
|
getContainer: getContainer,
|
||||||
|
navigateWithNewParam: navigateHandler,
|
||||||
|
createElement: function() {
|
||||||
|
return document.createElement.apply(document, arguments);
|
||||||
|
},
|
||||||
|
createTextNode: function() {
|
||||||
|
return document.createTextNode.apply(document, arguments);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
env.throwOnExpectationFailure(true);
|
||||||
|
|
||||||
|
reporter.initialize();
|
||||||
|
reporter.jasmineDone({});
|
||||||
|
|
||||||
|
var throwingExpectationsUI = container.querySelector(".jasmine-throw");
|
||||||
|
throwingExpectationsUI.click();
|
||||||
|
|
||||||
|
expect(navigateHandler).toHaveBeenCalledWith('throwFailures', false);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -649,17 +707,17 @@ describe("HtmlReporter", function() {
|
|||||||
expect(randomUI.checked).toBe(true);
|
expect(randomUI.checked).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should affect the query param for random tests", function() {
|
it("should navigate and change the setting to on", function() {
|
||||||
var env = new jasmineUnderTest.Env(),
|
var env = new jasmineUnderTest.Env(),
|
||||||
container = document.createElement("div"),
|
container = document.createElement("div"),
|
||||||
randomHandler = jasmine.createSpy('randomHandler'),
|
navigateHandler = jasmine.createSpy('navigate'),
|
||||||
getContainer = function() {
|
getContainer = function() {
|
||||||
return container;
|
return container;
|
||||||
},
|
},
|
||||||
reporter = new jasmineUnderTest.HtmlReporter({
|
reporter = new jasmineUnderTest.HtmlReporter({
|
||||||
env: env,
|
env: env,
|
||||||
getContainer: getContainer,
|
getContainer: getContainer,
|
||||||
onRandomClick: randomHandler,
|
navigateWithNewParam: navigateHandler,
|
||||||
createElement: function() {
|
createElement: function() {
|
||||||
return document.createElement.apply(document, arguments);
|
return document.createElement.apply(document, arguments);
|
||||||
},
|
},
|
||||||
@@ -668,13 +726,43 @@ describe("HtmlReporter", function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
env.randomizeTests(false);
|
||||||
reporter.initialize();
|
reporter.initialize();
|
||||||
reporter.jasmineDone({});
|
reporter.jasmineDone({});
|
||||||
|
|
||||||
var randomUI = container.querySelector(".jasmine-random");
|
var randomUI = container.querySelector(".jasmine-random");
|
||||||
randomUI.click();
|
randomUI.click();
|
||||||
|
|
||||||
expect(randomHandler).toHaveBeenCalled();
|
expect(navigateHandler).toHaveBeenCalledWith('random', true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should navigate and change the setting to off", function() {
|
||||||
|
var env = new jasmineUnderTest.Env(),
|
||||||
|
container = document.createElement("div"),
|
||||||
|
navigateHandler = jasmine.createSpy('navigate'),
|
||||||
|
getContainer = function() {
|
||||||
|
return container;
|
||||||
|
},
|
||||||
|
reporter = new jasmineUnderTest.HtmlReporter({
|
||||||
|
env: env,
|
||||||
|
getContainer: getContainer,
|
||||||
|
navigateWithNewParam: navigateHandler,
|
||||||
|
createElement: function() {
|
||||||
|
return document.createElement.apply(document, arguments);
|
||||||
|
},
|
||||||
|
createTextNode: function() {
|
||||||
|
return document.createTextNode.apply(document, arguments);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
env.randomizeTests(true);
|
||||||
|
reporter.initialize();
|
||||||
|
reporter.jasmineDone({});
|
||||||
|
|
||||||
|
var randomUI = container.querySelector(".jasmine-random");
|
||||||
|
randomUI.click();
|
||||||
|
|
||||||
|
expect(navigateHandler).toHaveBeenCalledWith('random', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should show the seed bar if randomizing", function() {
|
it("should show the seed bar if randomizing", function() {
|
||||||
|
|||||||
@@ -55,9 +55,7 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|||||||
getContainer = options.getContainer,
|
getContainer = options.getContainer,
|
||||||
createElement = options.createElement,
|
createElement = options.createElement,
|
||||||
createTextNode = options.createTextNode,
|
createTextNode = options.createTextNode,
|
||||||
onStopExecutionClick = options.onStopExecutionClick || function() {},
|
navigateWithNewParam = options.navigateWithNewParam || function() {},
|
||||||
onThrowExpectationsClick = options.onThrowExpectationsClick || function() {},
|
|
||||||
onRandomClick = options.onRandomClick || function() {},
|
|
||||||
addToExistingQueryString = options.addToExistingQueryString || defaultQueryString,
|
addToExistingQueryString = options.addToExistingQueryString || defaultQueryString,
|
||||||
filterSpecs = options.filterSpecs,
|
filterSpecs = options.filterSpecs,
|
||||||
timer = options.timer || noopTimer,
|
timer = options.timer || noopTimer,
|
||||||
@@ -318,15 +316,21 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|||||||
|
|
||||||
var failFastCheckbox = optionsMenuDom.querySelector('#jasmine-fail-fast');
|
var failFastCheckbox = optionsMenuDom.querySelector('#jasmine-fail-fast');
|
||||||
failFastCheckbox.checked = env.stoppingOnSpecFailure();
|
failFastCheckbox.checked = env.stoppingOnSpecFailure();
|
||||||
failFastCheckbox.onclick = onStopExecutionClick;
|
failFastCheckbox.onclick = function() {
|
||||||
|
navigateWithNewParam('failFast', !env.stoppingOnSpecFailure());
|
||||||
|
};
|
||||||
|
|
||||||
var throwCheckbox = optionsMenuDom.querySelector('#jasmine-throw-failures');
|
var throwCheckbox = optionsMenuDom.querySelector('#jasmine-throw-failures');
|
||||||
throwCheckbox.checked = env.throwingExpectationFailures();
|
throwCheckbox.checked = env.throwingExpectationFailures();
|
||||||
throwCheckbox.onclick = onThrowExpectationsClick;
|
throwCheckbox.onclick = function() {
|
||||||
|
navigateWithNewParam('throwFailures', !env.throwingExpectationFailures());
|
||||||
|
};
|
||||||
|
|
||||||
var randomCheckbox = optionsMenuDom.querySelector('#jasmine-random-order');
|
var randomCheckbox = optionsMenuDom.querySelector('#jasmine-random-order');
|
||||||
randomCheckbox.checked = env.randomTests();
|
randomCheckbox.checked = env.randomTests();
|
||||||
randomCheckbox.onclick = onRandomClick;
|
randomCheckbox.onclick = function() {
|
||||||
|
navigateWithNewParam('random', !env.randomTests());
|
||||||
|
};
|
||||||
|
|
||||||
var optionsTrigger = optionsMenuDom.querySelector('.jasmine-trigger'),
|
var optionsTrigger = optionsMenuDom.querySelector('.jasmine-trigger'),
|
||||||
optionsPayload = optionsMenuDom.querySelector('.jasmine-payload'),
|
optionsPayload = optionsMenuDom.querySelector('.jasmine-payload'),
|
||||||
|
|||||||
Reference in New Issue
Block a user