From 023d4ca945e830f34a68bdd9962af056a5a62696 Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Tue, 29 May 2018 00:45:39 +0200 Subject: [PATCH] add more test cases --- test/cases/json/import-lazy/index.js | 61 +++++++++++++++++++ .../namespace-object-lazy/dir-mixed/json.json | 4 ++ .../cases/mjs/namespace-object-lazy/index.mjs | 11 ++-- .../dir-mixed/json.json | 4 ++ .../non-mjs-namespace-object-lazy/index.js | 3 +- 5 files changed, 77 insertions(+), 6 deletions(-) create mode 100644 test/cases/json/import-lazy/index.js create mode 100644 test/cases/mjs/namespace-object-lazy/dir-mixed/json.json create mode 100644 test/cases/mjs/non-mjs-namespace-object-lazy/dir-mixed/json.json diff --git a/test/cases/json/import-lazy/index.js b/test/cases/json/import-lazy/index.js new file mode 100644 index 00000000000..2f01d1b61fa --- /dev/null +++ b/test/cases/json/import-lazy/index.js @@ -0,0 +1,61 @@ + +it("should be possible to import json data async", function() { + return Promise.all([ + import("../data/a.json"), + import("../data/b.json"), + import("../data/c.json"), + import("../data/d.json"), + import("../data/e.json"), + import("../data/f.json"), + import("../data/g.json") + ]).then(([a, b, c, d, e, f, g]) => { + expect(a).toEqual({ + default: null, + [Symbol.toStringTag]: "Module" + }); + expect(b).toEqual({ + default: 123, + [Symbol.toStringTag]: "Module" + }); + expect(c).toEqual({ + 0: 1, + 1: 2, + 2: 3, + 3: 4, + default: [1, 2, 3, 4], + [Symbol.toStringTag]: "Module" + }); + expect(d).toEqual({ + default: {}, + [Symbol.toStringTag]: "Module" + }); + expect(e).toEqual({ + aa: 1, + bb: 2, + 1: "x", + default: { + aa: 1, + bb: 2, + "1": "x" + }, + [Symbol.toStringTag]: "Module" + }); + expect(f).toEqual({ + named: "named", + default: { + named: "named", + "default": "default", + __esModule: true + }, + [Symbol.toStringTag]: "Module" + }); + expect(g).toEqual({ + named: {}, + default: { + named: {} + }, + [Symbol.toStringTag]: "Module" + }); + expect(g.named).toBe(g.default.named); + }); +}); diff --git a/test/cases/mjs/namespace-object-lazy/dir-mixed/json.json b/test/cases/mjs/namespace-object-lazy/dir-mixed/json.json new file mode 100644 index 00000000000..9c8ca3f82ff --- /dev/null +++ b/test/cases/mjs/namespace-object-lazy/dir-mixed/json.json @@ -0,0 +1,4 @@ +{ + "default": "default", + "named": "named" +} \ No newline at end of file diff --git a/test/cases/mjs/namespace-object-lazy/index.mjs b/test/cases/mjs/namespace-object-lazy/index.mjs index f9beed54f08..539e66910d8 100644 --- a/test/cases/mjs/namespace-object-lazy/index.mjs +++ b/test/cases/mjs/namespace-object-lazy/index.mjs @@ -40,11 +40,11 @@ function contextHarmony(name) { function contextMixed(name) { return Promise.all([ - import(`./dir-mixed/${name}.js`), - import(/* webpackMode: "lazy-once" */`./dir-mixed?1/${name}.js`), - import(/* webpackMode: "eager" */`./dir-mixed?2/${name}.js`) + import(`./dir-mixed/${name}`), + import(/* webpackMode: "lazy-once" */`./dir-mixed?1/${name}`), + import(/* webpackMode: "eager" */`./dir-mixed?2/${name}`) ]).then(function(results) { - return import(/* webpackMode: "weak" */`./dir-mixed/${name}.js`).then(function(r) { + return import(/* webpackMode: "weak" */`./dir-mixed/${name}`).then(function(r) { results.push(r); return results; }); @@ -80,6 +80,7 @@ it("should receive a namespace object when importing mixed content via context", promiseTest(contextMixed("one"), { default: { named: "named", default: "default" }, [Symbol.toStringTag]: "Module" }), promiseTest(contextMixed("two"), { default: { __esModule: true, named: "named", default: "default" }, [Symbol.toStringTag]: "Module" }), promiseTest(contextMixed("three"), { named: "named", default: "default", [Symbol.toStringTag]: "Module" }), - promiseTest(contextMixed("null"), { default: null, [Symbol.toStringTag]: "Module" }) + promiseTest(contextMixed("null"), { default: null, [Symbol.toStringTag]: "Module" }), + promiseTest(contextMixed("json.json"), { named: "named", default: { named: "named", default: "default" }, [Symbol.toStringTag]: "Module" }) ]); }); diff --git a/test/cases/mjs/non-mjs-namespace-object-lazy/dir-mixed/json.json b/test/cases/mjs/non-mjs-namespace-object-lazy/dir-mixed/json.json new file mode 100644 index 00000000000..9c8ca3f82ff --- /dev/null +++ b/test/cases/mjs/non-mjs-namespace-object-lazy/dir-mixed/json.json @@ -0,0 +1,4 @@ +{ + "default": "default", + "named": "named" +} \ No newline at end of file diff --git a/test/cases/mjs/non-mjs-namespace-object-lazy/index.js b/test/cases/mjs/non-mjs-namespace-object-lazy/index.js index 709b47786bf..936032eb9b6 100644 --- a/test/cases/mjs/non-mjs-namespace-object-lazy/index.js +++ b/test/cases/mjs/non-mjs-namespace-object-lazy/index.js @@ -80,6 +80,7 @@ it("should receive a namespace object when importing mixed content via context", promiseTest(contextMixed("one"), { named: "named", default: { named: "named", default: "default" }, [Symbol.toStringTag]: "Module" }), promiseTest(contextMixed("two"), { __esModule: true, named: "named", default: "default" }), promiseTest(contextMixed("three"), { named: "named", default: "default", [Symbol.toStringTag]: "Module" }), - promiseTest(contextMixed("null"), { default: null, [Symbol.toStringTag]: "Module" }) + promiseTest(contextMixed("null"), { default: null, [Symbol.toStringTag]: "Module" }), + promiseTest(contextMixed("json.json"), { named: "named", default: { named: "named", default: "default" }, [Symbol.toStringTag]: "Module" }) ]); });