diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/bundler/bundler_cjs2esm.test.ts | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/test/bundler/bundler_cjs2esm.test.ts b/test/bundler/bundler_cjs2esm.test.ts index 2c498a4c6..01a17356b 100644 --- a/test/bundler/bundler_cjs2esm.test.ts +++ b/test/bundler/bundler_cjs2esm.test.ts @@ -3,6 +3,19 @@ import dedent from "dedent"; import { itBundled, testForFile } from "./expectBundled"; var { describe, test, expect } = testForFile(import.meta.path); +const fakeReactNodeModules = { + "/node_modules/react/index.js": /* js */ ` + module.exports = { react: "react" } + `, + "/node_modules/react/package.json": /* json */ ` + { + "name": "react", + "version": "2.0.0", + "main": "index.js" + } + `, +}; + describe("bundler", () => { itBundled("cjs2esm/ModuleExportsFunction", { files: { @@ -222,4 +235,55 @@ describe("bundler", () => { stdout: "development", }, }); + itBundled("cjs2esm/UnwrappedModuleRequireAssigned", { + files: { + "/entry.js": /* js */ ` + const react = require("react"); + console.log(react.react); + + const react1 = (console.log(require("react").react), require("react")); + console.log(react1.react); + + const react2 = (require("react"), console.log(require("react").react)); + console.log(react2); + + let x = {}; + x.react = require("react"); + console.log(x.react.react); + + console.log(require("react").react); + + let y = {}; + y[require("react")] = require("react"); + console.log(y[require("react")].react); + + let r = require("react"); + console.log(r.react); + r = require("react"); + console.log(r.react); + + let n = 1; + n = require("react"); + console.log(n.react); + + let m = 1, + o = require("react"); + console.log(m, o.react); + + let h = Math.random() > 0.5; + let p = require(h ? "react" : "react"); + console.log(p.react); + + console.log(require(h ? "react" : "react").react); + `, + ...fakeReactNodeModules, + }, + onAfterBundle: api => { + const code = api.readFile("out.js"); + expect(code).toContain("__toESM("); + }, + run: { + stdout: "react\nreact\nreact\nreact\nundefined\nreact\nreact\nreact\nreact\nreact\nreact\n1 react\nreact\nreact", + }, + }); }); |
