diff options
author | 2022-06-24 06:59:47 -0700 | |
---|---|---|
committer | 2022-06-24 06:59:47 -0700 | |
commit | 7bb75f55530e52447b9c68bc5b0908bf734ba184 (patch) | |
tree | e30b431d6f257824f2821c56a2ec01136938cc5e /test/bun.js/import-meta.test.js | |
parent | 6d6a89780b10816de38c465b1e6bb583979feacd (diff) | |
download | bun-7bb75f55530e52447b9c68bc5b0908bf734ba184.tar.gz bun-7bb75f55530e52447b9c68bc5b0908bf734ba184.tar.zst bun-7bb75f55530e52447b9c68bc5b0908bf734ba184.zip |
Add dynamic require support
Diffstat (limited to 'test/bun.js/import-meta.test.js')
-rw-r--r-- | test/bun.js/import-meta.test.js | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/test/bun.js/import-meta.test.js b/test/bun.js/import-meta.test.js index 0e2faa903..f2cd996cd 100644 --- a/test/bun.js/import-meta.test.js +++ b/test/bun.js/import-meta.test.js @@ -18,12 +18,52 @@ it("import.meta.resolveSync", () => { ).toBe(import.meta.path); }); -it("import.meta.require", () => { +it("import.meta.require (json)", () => { expect(import.meta.require("./require-json.json").hello).toBe(sync.hello); const require = Module.createRequire(import.meta.path); expect(require("./require-json.json").hello).toBe(sync.hello); }); +it("import.meta.require (javascript)", () => { + expect(import.meta.require("./require-js.js").hello).toBe(sync.hello); + const require = Module.createRequire(import.meta.path); + expect(require("./require-js.js").hello).toBe(sync.hello); +}); + +it("import.meta.require (javascript, live bindings)", () => { + var Source = import.meta.require("./import.live.decl.js"); + + // require transpiles to import.meta.require + var ReExport = require("./import.live.rexport.js"); + + // dynamic require (string interpolation that way forces it to be dynamic) + var ReExportDynamic = require(`./import.live.${"rexport" + .split("") + .join("")}.js`); + + expect(Source.foo).toBe(1); + Source.setFoo(Source.foo + 1); + + expect(ReExport.foo).toBe(2); + expect(Source.foo).toBe(2); + expect(ReExportDynamic.foo).toBe(2); + + Source.setFoo(Source.foo + 1); + + var { Namespace } = require("./import.live.rexport-require.js"); + + expect(Namespace).toBe(Source); + expect(ReExport.foo).toBe(3); + expect(Source.foo).toBe(3); + expect(Namespace.foo).toBe(3); + + ReExport.setFoo(ReExport.foo + 1); + + expect(ReExport.foo).toBe(4); + expect(Source.foo).toBe(4); + expect(Namespace.foo).toBe(4); +}); + it("import.meta.dir", () => { expect(dir.endsWith("/bun/test/bun.js")).toBe(true); }); |