From 1390e44968423e22c24e2c3be389abc171e5a014 Mon Sep 17 00:00:00 2001 From: Yvo Brevoort Date: Sat, 12 Jul 2025 14:44:00 +0200 Subject: [PATCH] fix running tests for a second time --- .../automatic-tests/commands/autoRunTests.js | 10 +++++++--- .../automatic-tests/commands/resetTests.js | 10 ++++++++++ generated.html | 20 ++++++++++++++++--- 3 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 base-components/automatic-tests/commands/resetTests.js diff --git a/base-components/automatic-tests/commands/autoRunTests.js b/base-components/automatic-tests/commands/autoRunTests.js index b3e2ad8..22245c9 100644 --- a/base-components/automatic-tests/commands/autoRunTests.js +++ b/base-components/automatic-tests/commands/autoRunTests.js @@ -2,8 +2,12 @@ function(el) { var testRunners = document.querySelectorAll(".simplycode-component[open] iframe.qunit"); testRunners.forEach(function(testRunner) { testRunner.contentWindow.document.testRunner = testRunner; - testRunner.contentWindow.document.open(); - testRunner.contentWindow.document.write(testRunner.parentNode.querySelector(".qunit-code").innerText); - testRunner.contentWindow.document.close(); + simplyApp.commands.resetTests(testRunner) + .then(function(testRunner) { + testRunner.contentWindow.document.testRunner = testRunner; + testRunner.contentWindow.document.open(); + testRunner.contentWindow.document.write(testRunner.parentNode.querySelector(".qunit-code").innerText); + testRunner.contentWindow.document.close(); + }); }); } \ No newline at end of file diff --git a/base-components/automatic-tests/commands/resetTests.js b/base-components/automatic-tests/commands/resetTests.js new file mode 100644 index 0000000..463385d --- /dev/null +++ b/base-components/automatic-tests/commands/resetTests.js @@ -0,0 +1,10 @@ +function(el) { + return new Promise(function(resolve, reject) { + var newRunner = el.cloneNode(false); + newRunner.addEventListener("load", function() { + resolve(newRunner); + }); + el.parentNode.insertBefore(newRunner, el); + el.remove(); + }); +} \ No newline at end of file diff --git a/generated.html b/generated.html index 419e1aa..f8e8bef 100644 --- a/generated.html +++ b/generated.html @@ -3001,9 +3001,23 @@ var testRunners = document.querySelectorAll(".simplycode-component[open] iframe.qunit"); testRunners.forEach(function(testRunner) { testRunner.contentWindow.document.testRunner = testRunner; - testRunner.contentWindow.document.open(); - testRunner.contentWindow.document.write(testRunner.parentNode.querySelector(".qunit-code").innerText); - testRunner.contentWindow.document.close(); + simplyApp.commands.resetTests(testRunner) + .then(function(testRunner) { + testRunner.contentWindow.document.testRunner = testRunner; + testRunner.contentWindow.document.open(); + testRunner.contentWindow.document.write(testRunner.parentNode.querySelector(".qunit-code").innerText); + testRunner.contentWindow.document.close(); + }); + }); + }, + "resetTests" : function(el) { + return new Promise(function(resolve, reject) { + var newRunner = el.cloneNode(false); + newRunner.addEventListener("load", function() { + resolve(newRunner); + }); + el.parentNode.insertBefore(newRunner, el); + el.remove(); }); }, "codeMirrorInit" : function() {