Skip to content

Commit 29de280

Browse files
Use Node.js interop when importing lib in test (#13995)
1 parent 1bbe1fc commit 29de280

51 files changed

Lines changed: 186 additions & 73 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

babel.config.js

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,6 @@ module.exports = function (api) {
165165
["@babel/proposal-object-rest-spread", { useBuiltIns: true }],
166166

167167
convertESM ? "@babel/proposal-export-namespace-from" : null,
168-
convertESM
169-
? ["@babel/transform-modules-commonjs", { importInterop }]
170-
: null,
171168
convertESM ? pluginImportMetaUrl : null,
172169

173170
pluginPackageJsonMacro,
@@ -202,7 +199,10 @@ module.exports = function (api) {
202199
].map(normalize),
203200
plugins: [
204201
// Explicitly use the lazy version of CommonJS modules.
205-
["@babel/transform-modules-commonjs", { importInterop, lazy: true }],
202+
[
203+
"@babel/transform-modules-commonjs",
204+
{ importInterop: importInteropSrc, lazy: true },
205+
],
206206
],
207207
},
208208
convertESM && {
@@ -215,6 +215,24 @@ module.exports = function (api) {
215215
assumptions: sourceAssumptions,
216216
plugins: [transformNamedBabelTypesImportToDestructuring],
217217
},
218+
convertESM && {
219+
test: sources.map(normalize),
220+
plugins: [
221+
[
222+
"@babel/transform-modules-commonjs",
223+
{ importInterop: importInteropSrc },
224+
],
225+
],
226+
},
227+
{
228+
test: sources.map(source => normalize(source.replace("/src", "/test"))),
229+
plugins: [
230+
[
231+
"@babel/transform-modules-commonjs",
232+
{ importInterop: importInteropTest },
233+
],
234+
],
235+
},
218236
{
219237
test: unambiguousSources.map(normalize),
220238
sourceType: "unambiguous",
@@ -244,7 +262,7 @@ const monorepoPackages = ["codemods", "eslint", "packages"]
244262
.reduce((a, b) => a.concat(b))
245263
.map(name => name.replace(/^babel-/, "@babel/"));
246264

247-
function importInterop(source) {
265+
function importInteropSrc(source) {
248266
if (
249267
// These internal files are "real CJS" (whose default export is
250268
// on module.exports) and not compiled ESM.
@@ -266,6 +284,22 @@ function importInterop(source) {
266284
return "node";
267285
}
268286

287+
function importInteropTest(source) {
288+
// This file will soon have an esm entrypoint
289+
if (source === "@babel/helper-plugin-test-runner") {
290+
return "none";
291+
}
292+
if (
293+
// non-test files
294+
!source.startsWith(".") ||
295+
// lib files
296+
/(?:\.\.\/)+(?:babel-[a-z-]+\/)?lib/.test(source)
297+
) {
298+
return "node";
299+
}
300+
return "babel";
301+
}
302+
269303
// env vars from the cli are always strings, so !!ENV_VAR returns true for "false"
270304
function bool(value) {
271305
return value && value !== "false" && value !== "0";

eslint/babel-eslint-plugin-development-internal/test/rules/dry-error-messages.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const MODULE_PARENT_DIR = path.resolve(dirname, "test/errorsModule.js");
1212

1313
const ruleTester = new RuleTester();
1414

15-
ruleTester.run("dry-error-messages", rule, {
15+
ruleTester.run("dry-error-messages", rule.default, {
1616
valid: [
1717
// Ignores malformed `this.raise` invocations.
1818
{

eslint/babel-eslint-plugin-development-internal/test/rules/report-error-message-formtat.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import rule from "../../lib/rules/report-error-message-format.js";
33

44
const ruleTester = new RuleTester();
55

6-
ruleTester.run("report-error-message-format", rule, {
6+
ruleTester.run("report-error-message-format", rule.default, {
77
valid: [
88
"makeErrorTemplates({});",
99
'makeErrorTemplates({ ThisIsAnError: "This is an error." });',

eslint/babel-eslint-plugin-development/test/rules/no-deprecated-clone.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const ruleTester = new RuleTester({
99
parserOptions: { sourceType: "module" },
1010
});
1111

12-
ruleTester.run("no-deprecated-clone", rule, {
12+
ruleTester.run("no-deprecated-clone", rule.default, {
1313
valid: [
1414
`_.clone(obj)`,
1515
`_.cloneDeep(obj)`,

eslint/babel-eslint-plugin-development/test/rules/no-undefined-identifier.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const ruleTester = new RuleTester({
88
parserOptions: { sourceType: "module" },
99
});
1010

11-
ruleTester.run("no-undefined-identifier", rule, {
11+
ruleTester.run("no-undefined-identifier", rule.default, {
1212
valid: [
1313
`_.identifier("undefined")`,
1414
`_.Identifier("undefined")`,

eslint/babel-eslint-plugin-development/test/rules/plugin-name.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const missingNameError = "This Babel plugin doesn't have a 'name' property.";
66

77
const ruleTester = new RuleTester();
88

9-
ruleTester.run("plugin-name", rule, {
9+
ruleTester.run("plugin-name", rule.default, {
1010
valid: [
1111
`export default function () { return { name: "test-plugin" } }`,
1212
`import { declare } from "@babel/helper-plugin-utils"; declare(() => { return { name: "test-plugin" } })`,

eslint/babel-eslint-plugin/test/rules/new-cap.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import rule from "../../lib/rules/new-cap.js";
22
import RuleTester from "../../../babel-eslint-shared-fixtures/utils/RuleTester.js";
33

44
const ruleTester = new RuleTester();
5-
ruleTester.run("@babel/new-cap", rule, {
5+
ruleTester.run("@babel/new-cap", rule.default, {
66
valid: [
77
{
88
code: "@MyDecorator(123) class MyClass{}",

eslint/babel-eslint-plugin/test/rules/no-invalid-this.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ const patterns = [
165165
];
166166

167167
const ruleTester = new RuleTester();
168-
ruleTester.run("@babel/no-invalid-this", rule, {
168+
ruleTester.run("@babel/no-invalid-this", rule.default, {
169169
valid: extractPatterns(patterns, "valid"),
170170
invalid: extractPatterns(patterns, "invalid"),
171171
});

eslint/babel-eslint-plugin/test/rules/no-unused-expressions.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import rule from "../../lib/rules/no-unused-expressions.js";
22
import RuleTester from "../../../babel-eslint-shared-fixtures/utils/RuleTester.js";
33

44
const ruleTester = new RuleTester();
5-
ruleTester.run("@babel/no-unused-expressions", rule, {
5+
ruleTester.run("@babel/no-unused-expressions", rule.default, {
66
valid: [
77
"let a = do { if (foo) { foo.bar; } }",
88
"let a = do { foo; }",

eslint/babel-eslint-plugin/test/rules/object-curly-spacing.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import rule from "../../lib/rules/object-curly-spacing.js";
22
import RuleTester from "../../../babel-eslint-shared-fixtures/utils/RuleTester.js";
33

44
const ruleTester = new RuleTester();
5-
ruleTester.run("@babel/object-curly-spacing", rule, {
5+
ruleTester.run("@babel/object-curly-spacing", rule.default, {
66
valid: ['export x from "mod";'],
77
invalid: [],
88
});

0 commit comments

Comments
 (0)