* Prepare @babel/core for asynchronicity * Include regenerator-runtime in standalone build * Fix rollup build
215 lines
7.9 KiB
JavaScript
215 lines
7.9 KiB
JavaScript
import path from "path";
|
|
import * as babel from "..";
|
|
|
|
const nodeGte8 = (...args) => {
|
|
// "minNodeVersion": "8.0.0" <-- For Ctrl+F when dropping node 6
|
|
const testFn = process.version.slice(0, 3) === "v6." ? it.skip : it;
|
|
testFn(...args);
|
|
};
|
|
|
|
describe("asynchronicity", () => {
|
|
const base = path.join(__dirname, "fixtures", "async");
|
|
let cwd;
|
|
|
|
beforeEach(function() {
|
|
cwd = process.cwd();
|
|
process.chdir(base);
|
|
});
|
|
|
|
afterEach(function() {
|
|
process.chdir(cwd);
|
|
});
|
|
|
|
describe("config file", () => {
|
|
describe("async function", () => {
|
|
nodeGte8("called synchronously", () => {
|
|
process.chdir("config-file-async-function");
|
|
|
|
expect(() =>
|
|
babel.transformSync(""),
|
|
).toThrowErrorMatchingInlineSnapshot(
|
|
`"You appear to be using an async configuration, which your current version of Babel does` +
|
|
` not support. We may add support for this in the future, but if you're on the most recent` +
|
|
` version of @babel/core and still seeing this error, then you'll need to synchronously` +
|
|
` return your config."`,
|
|
);
|
|
});
|
|
|
|
nodeGte8("called asynchronously", async () => {
|
|
process.chdir("config-file-async-function");
|
|
|
|
await expect(
|
|
babel.transformAsync(""),
|
|
).rejects.toThrowErrorMatchingInlineSnapshot(
|
|
`"You appear to be using an async configuration, which your current version of Babel does` +
|
|
` not support. We may add support for this in the future, but if you're on the most recent` +
|
|
` version of @babel/core and still seeing this error, then you'll need to synchronously` +
|
|
` return your config."`,
|
|
);
|
|
});
|
|
});
|
|
|
|
describe("promise", () => {
|
|
it("called synchronously", () => {
|
|
process.chdir("config-file-promise");
|
|
|
|
expect(() =>
|
|
babel.transformSync(""),
|
|
).toThrowErrorMatchingInlineSnapshot(
|
|
`"You appear to be using an async configuration, which your current version of Babel does` +
|
|
` not support. We may add support for this in the future, but if you're on the most recent` +
|
|
` version of @babel/core and still seeing this error, then you'll need to synchronously` +
|
|
` return your config."`,
|
|
);
|
|
});
|
|
|
|
it("called asynchronously", async () => {
|
|
process.chdir("config-file-promise");
|
|
|
|
await expect(
|
|
babel.transformAsync(""),
|
|
).rejects.toThrowErrorMatchingInlineSnapshot(
|
|
`"You appear to be using an async configuration, which your current version of Babel does` +
|
|
` not support. We may add support for this in the future, but if you're on the most recent` +
|
|
` version of @babel/core and still seeing this error, then you'll need to synchronously` +
|
|
` return your config."`,
|
|
);
|
|
});
|
|
});
|
|
|
|
describe("cache.using", () => {
|
|
nodeGte8("called synchronously", () => {
|
|
process.chdir("config-cache");
|
|
|
|
expect(() =>
|
|
babel.transformSync(""),
|
|
).toThrowErrorMatchingInlineSnapshot(
|
|
`"You appear to be using an async cache handler, which your current version of Babel does` +
|
|
` not support. We may add support for this in the future, but if you're on the most recent` +
|
|
` version of @babel/core and still seeing this error, then you'll need to synchronously` +
|
|
` handle your caching logic."`,
|
|
);
|
|
});
|
|
|
|
nodeGte8("called asynchronously", async () => {
|
|
process.chdir("config-cache");
|
|
|
|
await expect(
|
|
babel.transformAsync(""),
|
|
).rejects.toThrowErrorMatchingInlineSnapshot(
|
|
`"You appear to be using an async cache handler, which your current version of Babel does` +
|
|
` not support. We may add support for this in the future, but if you're on the most recent` +
|
|
` version of @babel/core and still seeing this error, then you'll need to synchronously` +
|
|
` handle your caching logic."`,
|
|
);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("plugin", () => {
|
|
describe("factory function", () => {
|
|
nodeGte8("called synchronously", () => {
|
|
process.chdir("plugin");
|
|
|
|
expect(() =>
|
|
babel.transformSync(""),
|
|
).toThrowErrorMatchingInlineSnapshot(
|
|
`"[BABEL] unknown: You appear to be using an async plugin, which your current version of Babel` +
|
|
` does not support. If you're using a published plugin, you may need to upgrade your` +
|
|
` @babel/core version."`,
|
|
);
|
|
});
|
|
|
|
nodeGte8("called asynchronously", async () => {
|
|
process.chdir("plugin");
|
|
|
|
await expect(
|
|
babel.transformAsync(""),
|
|
).rejects.toThrowErrorMatchingInlineSnapshot(
|
|
`"[BABEL] unknown: You appear to be using an async plugin, which your current version of Babel` +
|
|
` does not support. If you're using a published plugin, you may need to upgrade your` +
|
|
` @babel/core version."`,
|
|
);
|
|
});
|
|
});
|
|
|
|
describe(".pre", () => {
|
|
nodeGte8("called synchronously", () => {
|
|
process.chdir("plugin-pre");
|
|
|
|
expect(() =>
|
|
babel.transformSync(""),
|
|
).toThrowErrorMatchingInlineSnapshot(
|
|
`"unknown: You appear to be using an plugin with an async .pre, which your current version` +
|
|
` of Babel does not support. If you're using a published plugin, you may need to upgrade your` +
|
|
` @babel/core version."`,
|
|
);
|
|
});
|
|
|
|
nodeGte8("called asynchronously", async () => {
|
|
process.chdir("plugin-pre");
|
|
|
|
await expect(
|
|
babel.transformAsync(""),
|
|
).rejects.toThrowErrorMatchingInlineSnapshot(
|
|
`"unknown: You appear to be using an plugin with an async .pre, which your current version` +
|
|
` of Babel does not support. If you're using a published plugin, you may need to upgrade your` +
|
|
` @babel/core version."`,
|
|
);
|
|
});
|
|
});
|
|
|
|
describe(".post", () => {
|
|
nodeGte8("called synchronously", () => {
|
|
process.chdir("plugin-post");
|
|
|
|
expect(() =>
|
|
babel.transformSync(""),
|
|
).toThrowErrorMatchingInlineSnapshot(
|
|
`"unknown: You appear to be using an plugin with an async .post, which your current version` +
|
|
` of Babel does not support. If you're using a published plugin, you may need to upgrade your` +
|
|
` @babel/core version."`,
|
|
);
|
|
});
|
|
|
|
nodeGte8("called asynchronously", async () => {
|
|
process.chdir("plugin-post");
|
|
|
|
await expect(
|
|
babel.transformAsync(""),
|
|
).rejects.toThrowErrorMatchingInlineSnapshot(
|
|
`"unknown: You appear to be using an plugin with an async .post, which your current version` +
|
|
` of Babel does not support. If you're using a published plugin, you may need to upgrade your` +
|
|
` @babel/core version."`,
|
|
);
|
|
});
|
|
});
|
|
|
|
describe("inherits", () => {
|
|
nodeGte8("called synchronously", () => {
|
|
process.chdir("plugin-inherits");
|
|
|
|
expect(() =>
|
|
babel.transformSync(""),
|
|
).toThrowErrorMatchingInlineSnapshot(
|
|
`"[BABEL] unknown: You appear to be using an async plugin, which your current version of Babel` +
|
|
` does not support. If you're using a published plugin, you may need to upgrade your` +
|
|
` @babel/core version."`,
|
|
);
|
|
});
|
|
|
|
nodeGte8("called asynchronously", async () => {
|
|
process.chdir("plugin-inherits");
|
|
|
|
await expect(
|
|
babel.transformAsync(""),
|
|
).rejects.toThrowErrorMatchingInlineSnapshot(
|
|
`"[BABEL] unknown: You appear to be using an async plugin, which your current version of Babel` +
|
|
` does not support. If you're using a published plugin, you may need to upgrade your` +
|
|
` @babel/core version."`,
|
|
);
|
|
});
|
|
});
|
|
});
|
|
});
|