From 65abac05c2222e83dcce7af1e3af347318fdb3d1 Mon Sep 17 00:00:00 2001 From: Justin Meyer Date: Sun, 2 Jul 2017 12:12:22 -0500 Subject: [PATCH] fixes #1221 and adds tests for it --- src/system-extension-contextual.js | 2 +- .../first-test.js | 2 -- .../second-runs-tests.js | 8 ----- .../second-test.js | 1 - test/clone-within-dynamic-imports/test.js | 2 -- .../within-dynamic-imports.html | 36 ------------------- test/ext-steal-clone/multiple/first-test.js | 5 +++ .../multiple}/first.js | 1 - test/ext-steal-clone/multiple/index.html | 18 ++++++++++ .../multiple/second-runs-tests.js | 5 +++ test/ext-steal-clone/multiple/second-test.js | 1 + .../multiple}/second.js | 1 - test/ext-steal-clone/multiple/test.js | 18 ++++++++++ test/steal_clone_test.js | 5 +++ 14 files changed, 53 insertions(+), 52 deletions(-) delete mode 100644 test/clone-within-dynamic-imports/first-test.js delete mode 100644 test/clone-within-dynamic-imports/second-runs-tests.js delete mode 100644 test/clone-within-dynamic-imports/second-test.js delete mode 100644 test/clone-within-dynamic-imports/test.js delete mode 100644 test/clone-within-dynamic-imports/within-dynamic-imports.html create mode 100644 test/ext-steal-clone/multiple/first-test.js rename test/{clone-within-dynamic-imports => ext-steal-clone/multiple}/first.js (53%) create mode 100644 test/ext-steal-clone/multiple/index.html create mode 100644 test/ext-steal-clone/multiple/second-runs-tests.js create mode 100644 test/ext-steal-clone/multiple/second-test.js rename test/{clone-within-dynamic-imports => ext-steal-clone/multiple}/second.js (53%) create mode 100644 test/ext-steal-clone/multiple/test.js diff --git a/src/system-extension-contextual.js b/src/system-extension-contextual.js index 740e5a173..88087b14f 100644 --- a/src/system-extension-contextual.js +++ b/src/system-extension-contextual.js @@ -17,7 +17,7 @@ addStealExtension(function (loader) { if (definer) { var localName = name + '/' + parentName; - if(!loader.has(name)) { + if(!loader.has(localName)) { // `definer` could be a function or could be a moduleName if (typeof definer === 'string') { definer = pluginLoader['import'](definer); diff --git a/test/clone-within-dynamic-imports/first-test.js b/test/clone-within-dynamic-imports/first-test.js deleted file mode 100644 index 42e51428a..000000000 --- a/test/clone-within-dynamic-imports/first-test.js +++ /dev/null @@ -1,2 +0,0 @@ -var clone = require("steal-clone"); -clone({}) diff --git a/test/clone-within-dynamic-imports/second-runs-tests.js b/test/clone-within-dynamic-imports/second-runs-tests.js deleted file mode 100644 index 5e58a03ee..000000000 --- a/test/clone-within-dynamic-imports/second-runs-tests.js +++ /dev/null @@ -1,8 +0,0 @@ -var clone = require("steal-clone"); -var second = require("./second"); -console.log("running second-test"); -clone({}) -.import('./second') -.then(function(mod) { - console.log("got second again", mod, second); -}); diff --git a/test/clone-within-dynamic-imports/second-test.js b/test/clone-within-dynamic-imports/second-test.js deleted file mode 100644 index a5403ec65..000000000 --- a/test/clone-within-dynamic-imports/second-test.js +++ /dev/null @@ -1 +0,0 @@ -require("./second-runs-tests"); diff --git a/test/clone-within-dynamic-imports/test.js b/test/clone-within-dynamic-imports/test.js deleted file mode 100644 index a0ca362d4..000000000 --- a/test/clone-within-dynamic-imports/test.js +++ /dev/null @@ -1,2 +0,0 @@ -require("steal/test/clone-within-dynamic-imports/first-test"); -require("steal/test/clone-within-dynamic-imports/second-test"); diff --git a/test/clone-within-dynamic-imports/within-dynamic-imports.html b/test/clone-within-dynamic-imports/within-dynamic-imports.html deleted file mode 100644 index 08e669913..000000000 --- a/test/clone-within-dynamic-imports/within-dynamic-imports.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - clone tests - - -
-
- - - - diff --git a/test/ext-steal-clone/multiple/first-test.js b/test/ext-steal-clone/multiple/first-test.js new file mode 100644 index 000000000..d766cc1b0 --- /dev/null +++ b/test/ext-steal-clone/multiple/first-test.js @@ -0,0 +1,5 @@ +var clone = require("steal-clone"); + +module.exports = function(){ + return clone({}).import("./first") +} diff --git a/test/clone-within-dynamic-imports/first.js b/test/ext-steal-clone/multiple/first.js similarity index 53% rename from test/clone-within-dynamic-imports/first.js rename to test/ext-steal-clone/multiple/first.js index 08a78013b..cbc07bd23 100644 --- a/test/clone-within-dynamic-imports/first.js +++ b/test/ext-steal-clone/multiple/first.js @@ -1,2 +1 @@ -console.log("running first"); module.exports = {name: "first"}; diff --git a/test/ext-steal-clone/multiple/index.html b/test/ext-steal-clone/multiple/index.html new file mode 100644 index 000000000..0d3b070dd --- /dev/null +++ b/test/ext-steal-clone/multiple/index.html @@ -0,0 +1,18 @@ + + + + + clone tests + + + + + + + diff --git a/test/ext-steal-clone/multiple/second-runs-tests.js b/test/ext-steal-clone/multiple/second-runs-tests.js new file mode 100644 index 000000000..f656a3037 --- /dev/null +++ b/test/ext-steal-clone/multiple/second-runs-tests.js @@ -0,0 +1,5 @@ +var clone = require("steal-clone"); + +module.exports = function(){ + return clone({}).import('./second') +}; diff --git a/test/ext-steal-clone/multiple/second-test.js b/test/ext-steal-clone/multiple/second-test.js new file mode 100644 index 000000000..17058124e --- /dev/null +++ b/test/ext-steal-clone/multiple/second-test.js @@ -0,0 +1 @@ +module.exports = require("./second-runs-tests"); diff --git a/test/clone-within-dynamic-imports/second.js b/test/ext-steal-clone/multiple/second.js similarity index 53% rename from test/clone-within-dynamic-imports/second.js rename to test/ext-steal-clone/multiple/second.js index e94f66d1b..016dbd0ac 100644 --- a/test/clone-within-dynamic-imports/second.js +++ b/test/ext-steal-clone/multiple/second.js @@ -1,2 +1 @@ -console.log("running second"); module.exports = {name: "second"}; diff --git a/test/ext-steal-clone/multiple/test.js b/test/ext-steal-clone/multiple/test.js new file mode 100644 index 000000000..99a35dd48 --- /dev/null +++ b/test/ext-steal-clone/multiple/test.js @@ -0,0 +1,18 @@ +var doClone1 = require("./first-test"); +var doClone2 = require("./second-test"); + +Promise.all([doClone1(), doClone2()]).then(function(){ + if (typeof window !== "undefined" && window.assert) { + assert.ok(true, "promises resolved"); + done(); + } else { + console.log("worked"); + } +}, function(){ + if (typeof window !== "undefined" && window.assert) { + assert.ok(false, "promises failed"); + done(); + } else { + console.log("promises failed"); + } +}); diff --git a/test/steal_clone_test.js b/test/steal_clone_test.js index 6fdcb8e2b..a2e330090 100644 --- a/test/steal_clone_test.js +++ b/test/steal_clone_test.js @@ -49,3 +49,8 @@ QUnit.test("works when using relative overrides", function(assert) { QUnit.test("what happens within a cloned loader should not leak", function(assert) { makeIframe("ext-steal-clone/leak/index.html", assert); }); + + +QUnit.test("multiple clones can work at different paths", function(assert) { + makeIframe("ext-steal-clone/multiple/index.html", assert); +});