Skip to content

Commit

Permalink
Convert @babel/helpers tests to ESM (#14753)
Browse files Browse the repository at this point in the history
* Convert `@babel/helpers` tests to ESM

* Run some tests on older versions

* Fix

* Update jest.config.js
  • Loading branch information
nicolo-ribaudo committed Jul 18, 2022
1 parent 4f278dc commit a33ad27
Show file tree
Hide file tree
Showing 19 changed files with 67 additions and 70 deletions.
8 changes: 0 additions & 8 deletions jest.config.js
@@ -1,4 +1,3 @@
const fs = require("fs");
const semver = require("semver");
const nodeVersion = process.versions.node;
const supportsESMAndJestLightRunner = semver.satisfies(
Expand All @@ -9,12 +8,6 @@ const supportsESMAndJestLightRunner = semver.satisfies(
);
const isPublishBundle = process.env.IS_PUBLISH;

let LIB_USE_ESM = false;
try {
const type = fs.readFileSync(`${__dirname}/.module-type`, "utf-8").trim();
LIB_USE_ESM = type === "module";
} catch (_) {}

module.exports = {
runner: supportsESMAndJestLightRunner ? "jest-light-runner" : "jest-runner",

Expand Down Expand Up @@ -43,7 +36,6 @@ module.exports = {
// Some tests require internal files of bundled packages, which are not available
// in production builds. They are marked using the .skip-bundled.js extension.
...(isPublishBundle ? ["\\.skip-bundled\\.js$"] : []),
...(LIB_USE_ESM ? ["/babel-helpers/"] : []),
// Ignore @babel/standalone test in coverage testing because it is not built
...(process.env.TEST_TYPE === "cov"
? ["<rootDir>/packages/babel-standalone/"]
Expand Down
@@ -1,3 +1,3 @@
{
"plugins": ["./plugin"]
"plugins": ["./plugin.cjs"]
}
@@ -1,3 +1,3 @@
{
"plugins": ["./plugin"]
"plugins": ["./plugin.cjs"]
}
@@ -1,18 +1,18 @@
const defineHelper = require("../../../helpers/define-helper.cjs");
import defineHelper from "../../../helpers/define-helper.js";

const dependency = defineHelper(__dirname, "dependency", `
const dependency = defineHelper(import.meta.url, "dependency", `
export default function fn() {}
`);

const main = defineHelper(__dirname, "main", `
const main = defineHelper(import.meta.url, "main", `
import dep from "${dependency}";
export default function helper() {
return dep();
}
`);

module.exports = function() {
export default function() {
return {
visitor: {
Identifier(path) {
Expand Down
10 changes: 5 additions & 5 deletions packages/babel-helpers/test/fixtures/dependencies/deep/plugin.js
@@ -1,23 +1,23 @@
const defineHelper = require("../../../helpers/define-helper.cjs");
import defineHelper from "../../../helpers/define-helper.js";

const dependencyDeep = defineHelper(__dirname, "dependencyDeep", `
const dependencyDeep = defineHelper(import.meta.url, "dependencyDeep", `
export default function fn() {}
`)

const dependency = defineHelper(__dirname, "dependency", `
const dependency = defineHelper(import.meta.url, "dependency", `
import f from "${dependencyDeep}";
export default function fn() { return f; }
`);

const main = defineHelper(__dirname, "main", `
const main = defineHelper(import.meta.url, "main", `
import dep from "${dependency}";
export default function helper() {
return dep();
}
`);

module.exports = function() {
export default function() {
return {
visitor: {
Identifier(path) {
Expand Down
@@ -1,14 +1,14 @@
const defineHelper = require("../../../helpers/define-helper.cjs");
import defineHelper from "../../../helpers/define-helper.js";

const main = defineHelper(__dirname, "main", `
const main = defineHelper(import.meta.url, "main", `
import dep from "(!!!)%-..a,4892 missing";
export default function helper() {
return dep();
}
`);

module.exports = function() {
export default function() {
return {
visitor: {
Identifier(path) {
Expand Down
@@ -1,14 +1,14 @@
const defineHelper = require("../../../helpers/define-helper.cjs");
import defineHelper from "../../../helpers/define-helper.js";

const dependency1 = defineHelper(__dirname, "dependency1", `
const dependency1 = defineHelper(import.meta.url, "dependency1", `
export default function fn() { 0; }
`);

const dependency2 = defineHelper(__dirname, "dependency2", `
const dependency2 = defineHelper(import.meta.url, "dependency2", `
export default function fn() { 1; }
`);

const main = defineHelper(__dirname, "main", `
const main = defineHelper(import.meta.url, "main", `
import dep1 from "${dependency1}";
import dep2 from "${dependency2}";
Expand All @@ -17,7 +17,7 @@ const main = defineHelper(__dirname, "main", `
}
`);

module.exports = function() {
export default function() {
return {
visitor: {
Identifier(path) {
Expand Down
@@ -0,0 +1,4 @@
{
"minNodeVersion": "12.22.0",
"externalHelpers": false
}
@@ -1,11 +1,11 @@
const defineHelper = require("../../../helpers/define-helper.cjs");
import defineHelper from "../../../helpers/define-helper.js";

const dependency = defineHelper(__dirname, "dependency", `
const dependency = defineHelper(import.meta.url, "dependency", `
let foo = "dependency";
export default function fn() { return foo }
`);

const main = defineHelper(__dirname, "main", `
const main = defineHelper(import.meta.url, "main", `
import dep from "${dependency}";
let foo = "main";
Expand All @@ -15,7 +15,7 @@ const main = defineHelper(__dirname, "main", `
}
`);

module.exports = function() {
export default function() {
return {
visitor: {
Identifier(path) {
Expand Down
@@ -1,20 +1,20 @@
const defineHelper = require("../../../helpers/define-helper.cjs");
import defineHelper from "../../../helpers/define-helper.js";

const dependency = defineHelper(__dirname, "dependency", `
const dependency = defineHelper(import.meta.url, "dependency", `
export default function fn() {
return Promise;
}
`);

const main = defineHelper(__dirname, "main", `
const main = defineHelper(import.meta.url, "main", `
import dep from "${dependency}";
export default function helper() {
return dep() || Promise;
}
`);

module.exports = function() {
export default function() {
return {
visitor: {
Identifier(path) {
Expand Down
@@ -1,18 +1,18 @@
const defineHelper = require("../../../helpers/define-helper.cjs");
import defineHelper from "../../../helpers/define-helper.js";

const dependency = defineHelper(__dirname, "dependency", `
const dependency = defineHelper(import.meta.url, "dependency", `
export default function fn() { 0; }
`);

const main = defineHelper(__dirname, "main", `
const main = defineHelper(import.meta.url, "main", `
import dep from "${dependency}";
export default function helper() {
return dep();
}
`);

module.exports = function() {
export default function() {
return {
visitor: {
Identifier(path) {
Expand Down
@@ -1,10 +1,10 @@
const defineHelper = require("../../../helpers/define-helper.cjs");
import defineHelper from "../../../helpers/define-helper.js";

const dependency = defineHelper(__dirname, "dependency", `
const dependency = defineHelper(import.meta.url, "dependency", `
export default function fn() {}
`);

const main = defineHelper(__dirname, "main", `
const main = defineHelper(import.meta.url, "main", `
import dep from "${dependency}";
export default function helper() {
Expand All @@ -15,7 +15,7 @@ const main = defineHelper(__dirname, "main", `
}
`);

module.exports = function() {
export default function() {
return {
visitor: {
Identifier(path) {
Expand Down
1 change: 0 additions & 1 deletion packages/babel-helpers/test/fixtures/package.json

This file was deleted.

@@ -1,3 +1,4 @@
{
"minNodeVersion": "12.22.0",
"plugins": ["./plugin"]
}
@@ -1,10 +1,10 @@
const defineHelper = require("../../../helpers/define-helper.cjs");
import defineHelper from "../../../helpers/define-helper.js";

const main = defineHelper(__dirname, "main", `
const main = defineHelper(import.meta.url, "main", `
export default function helper() {}
`);

module.exports = function() {
export default function() {
return {
visitor: {
Identifier(path) {
Expand Down
23 changes: 0 additions & 23 deletions packages/babel-helpers/test/helpers/define-helper.cjs

This file was deleted.

24 changes: 24 additions & 0 deletions packages/babel-helpers/test/helpers/define-helper.js
@@ -0,0 +1,24 @@
import path from "path";
import _template from "@babel/template";
import _helpers from "../../lib/helpers.js";
const template = _template.default || _template;
const helpers = _helpers.default || _helpers;

function getHelperId(baseURL, name) {
const testName = path.basename(new URL(".", baseURL).pathname);
return `_$_${testName}_${name}`;
}

export default function defineHelper(baseURL, name, code) {
const id = getHelperId(baseURL, name);
if (id in helpers) {
throw new Error(`The ${id} helper is already defined.`);
}
Object.defineProperty(helpers, id, {
value: {
minVersion: "7.0.0-beta.0",
ast: template.program(code),
},
});
return id;
}

0 comments on commit a33ad27

Please sign in to comment.