From b5b95f81dc8bd89997987ccdff759cf6ad86fba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Sun, 6 Dec 2020 19:33:21 +0100 Subject: [PATCH] Add `@babel/traverse` tests for re-exported bindings (#12429) --- .../test/fixtures/rename/re-export/input.mjs | 7 +++++++ .../test/fixtures/rename/re-export/options.json | 3 +++ .../test/fixtures/rename/re-export/output.mjs | 7 +++++++ .../test/fixtures/rename/re-export/plugin.js | 9 +++++++++ packages/babel-traverse/test/scope.js | 7 +++++++ 5 files changed, 33 insertions(+) create mode 100644 packages/babel-traverse/test/fixtures/rename/re-export/input.mjs create mode 100644 packages/babel-traverse/test/fixtures/rename/re-export/options.json create mode 100644 packages/babel-traverse/test/fixtures/rename/re-export/output.mjs create mode 100644 packages/babel-traverse/test/fixtures/rename/re-export/plugin.js diff --git a/packages/babel-traverse/test/fixtures/rename/re-export/input.mjs b/packages/babel-traverse/test/fixtures/rename/re-export/input.mjs new file mode 100644 index 000000000000..fde48c31e2f4 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/re-export/input.mjs @@ -0,0 +1,7 @@ +// https://github.com/babel/babel/issues/9266 + +export function x() { + return "YES"; +} + +export { x as someFunction } from './lib2.js' diff --git a/packages/babel-traverse/test/fixtures/rename/re-export/options.json b/packages/babel-traverse/test/fixtures/rename/re-export/options.json new file mode 100644 index 000000000000..14af0e5feac8 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/re-export/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["./plugin"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/re-export/output.mjs b/packages/babel-traverse/test/fixtures/rename/re-export/output.mjs new file mode 100644 index 000000000000..5dd557e07457 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/re-export/output.mjs @@ -0,0 +1,7 @@ +// https://github.com/babel/babel/issues/9266 +function a() { + return "YES"; +} + +export { a as x }; +export { x as someFunction } from './lib2.js'; diff --git a/packages/babel-traverse/test/fixtures/rename/re-export/plugin.js b/packages/babel-traverse/test/fixtures/rename/re-export/plugin.js new file mode 100644 index 000000000000..8ff77a2c5dd2 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/re-export/plugin.js @@ -0,0 +1,9 @@ +module.exports = function() { + return { + visitor: { + Function(path) { + path.scope.rename("x", "a"); + } + } + }; +} diff --git a/packages/babel-traverse/test/scope.js b/packages/babel-traverse/test/scope.js index 106c9631e647..129609705b71 100644 --- a/packages/babel-traverse/test/scope.js +++ b/packages/babel-traverse/test/scope.js @@ -351,6 +351,13 @@ describe("scope", () => { expect(path.scope.generateUid("Cls")).toBe("_Cls2"); }); + + it("re-exports are not references", () => { + const path = getPath("export { x } from 'y'", { + sourceType: "module", + }); + expect(path.scope.hasGlobal("x")).toBe(false); + }); }); describe("duplicate bindings", () => {