From 67505592112cf6f122410fad3f40d152ccfaf7e0 Mon Sep 17 00:00:00 2001 From: Luke van der Hoeven Date: Fri, 23 May 2014 15:58:09 -0400 Subject: [PATCH 1/2] failing spec for multiple inits --- spec/html/HtmlReporterSpec.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/spec/html/HtmlReporterSpec.js b/spec/html/HtmlReporterSpec.js index 5f6da5d2..19b06e15 100644 --- a/spec/html/HtmlReporterSpec.js +++ b/spec/html/HtmlReporterSpec.js @@ -32,6 +32,23 @@ describe("New HtmlReporter", function() { 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() { var env = new jasmine.Env(), startTimerSpy = jasmine.createSpy("start-timer-spy"), From 07cce0b1d1122e73f64bc7314bc7c6a564b8e1e1 Mon Sep 17 00:00:00 2001 From: Luke van der Hoeven Date: Fri, 23 May 2014 15:59:56 -0400 Subject: [PATCH 2/2] clear prior test results on multiple inits --- src/html/HtmlReporter.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/html/HtmlReporter.js b/src/html/HtmlReporter.js index f55c88ca..4d98d332 100644 --- a/src/html/HtmlReporter.js +++ b/src/html/HtmlReporter.js @@ -20,6 +20,7 @@ jasmineRequire.HtmlReporter = function(j$) { symbols; this.initialize = function() { + clearPrior(); htmlReporterMain = createDom('div', {className: 'html-reporter'}, createDom('div', {className: 'banner'}, 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); } + function clearPrior() { + // return the reporter + var oldReporter = find(''); + + if(oldReporter) { + getContainer().removeChild(oldReporter); + } + } + function createDom(type, attrs, childrenVarArgs) { var el = createElement(type);