Merge pull request #594 from plukevdh/reporter-reset
HTML Reporter reset previous DOM when re-initialized
This commit is contained in:
@@ -32,6 +32,23 @@ describe("New HtmlReporter", function() {
|
|||||||
expect(versionText).toEqual(j$.version);
|
expect(versionText).toEqual(j$.version);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("builds a single reporter even if initialized multiple times", function() {
|
||||||
|
var env = new j$.Env(),
|
||||||
|
container = document.createElement("div"),
|
||||||
|
getContainer = function() { return container; },
|
||||||
|
reporter = new j$.HtmlReporter({
|
||||||
|
env: env,
|
||||||
|
getContainer: getContainer,
|
||||||
|
createElement: function() { return document.createElement.apply(document, arguments); },
|
||||||
|
createTextNode: function() { return document.createTextNode.apply(document, arguments); }
|
||||||
|
});
|
||||||
|
reporter.initialize();
|
||||||
|
reporter.initialize();
|
||||||
|
reporter.initialize();
|
||||||
|
|
||||||
|
expect(container.querySelectorAll("div.html-reporter").length).toEqual(1);
|
||||||
|
});
|
||||||
|
|
||||||
it("starts the timer when jasmine begins", function() {
|
it("starts the timer when jasmine begins", function() {
|
||||||
var env = new jasmine.Env(),
|
var env = new jasmine.Env(),
|
||||||
startTimerSpy = jasmine.createSpy("start-timer-spy"),
|
startTimerSpy = jasmine.createSpy("start-timer-spy"),
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|||||||
symbols;
|
symbols;
|
||||||
|
|
||||||
this.initialize = function() {
|
this.initialize = function() {
|
||||||
|
clearPrior();
|
||||||
htmlReporterMain = createDom('div', {className: 'html-reporter'},
|
htmlReporterMain = createDom('div', {className: 'html-reporter'},
|
||||||
createDom('div', {className: 'banner'},
|
createDom('div', {className: 'banner'},
|
||||||
createDom('a', {className: 'title', href: 'http://jasmine.github.io/', target: '_blank'}),
|
createDom('a', {className: 'title', href: 'http://jasmine.github.io/', target: '_blank'}),
|
||||||
@@ -220,6 +221,15 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|||||||
return getContainer().querySelector('.html-reporter ' + selector);
|
return getContainer().querySelector('.html-reporter ' + selector);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function clearPrior() {
|
||||||
|
// return the reporter
|
||||||
|
var oldReporter = find('');
|
||||||
|
|
||||||
|
if(oldReporter) {
|
||||||
|
getContainer().removeChild(oldReporter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function createDom(type, attrs, childrenVarArgs) {
|
function createDom(type, attrs, childrenVarArgs) {
|
||||||
var el = createElement(type);
|
var el = createElement(type);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user