68 lines
2.0 KiB
JavaScript
68 lines
2.0 KiB
JavaScript
import * as babel from "@babel/core";
|
|
import es2015 from "../lib";
|
|
|
|
function transform(code, opts) {
|
|
return babel.transform(code, {
|
|
cwd: __dirname,
|
|
...opts,
|
|
});
|
|
}
|
|
|
|
describe("es2015 preset", function() {
|
|
it("does throw clear error when no options passed for Babel 6", () => {
|
|
expect(function() {
|
|
es2015({ version: "6.5.0" });
|
|
}).toThrow(Error, /Requires Babel "\^7.0.0-0"/);
|
|
});
|
|
|
|
describe("options", function() {
|
|
describe("loose", function() {
|
|
it("throws on non-boolean value", function() {
|
|
expect(function() {
|
|
transform("", { presets: [[es2015, { loose: 1 }]] });
|
|
}).toThrow(/must be a boolean/);
|
|
});
|
|
});
|
|
|
|
describe("spec", function() {
|
|
it("throws on non-boolean value", function() {
|
|
expect(function() {
|
|
transform("", { presets: [[es2015, { spec: 1 }]] });
|
|
}).toThrow(/must be a boolean/);
|
|
});
|
|
});
|
|
|
|
describe("modules", function() {
|
|
it("doesn't throw when passing one false", function() {
|
|
expect(function() {
|
|
transform("", { presets: [[es2015, { modules: false }]] });
|
|
}).not.toThrow();
|
|
});
|
|
|
|
it("doesn't throw when passing one of: 'commonjs', 'amd', 'umd', 'systemjs", function() {
|
|
expect(function() {
|
|
transform("", { presets: [[es2015, { modules: "commonjs" }]] });
|
|
}).not.toThrow();
|
|
|
|
expect(function() {
|
|
transform("", { presets: [[es2015, { modules: "amd" }]] });
|
|
}).not.toThrow();
|
|
|
|
expect(function() {
|
|
transform("", { presets: [[es2015, { modules: "umd" }]] });
|
|
}).not.toThrow();
|
|
|
|
expect(function() {
|
|
transform("", { presets: [[es2015, { modules: "systemjs" }]] });
|
|
}).not.toThrow();
|
|
});
|
|
|
|
it("throws when passing neither false nor one of: 'commonjs', 'amd', 'umd', 'systemjs'", function() {
|
|
expect(function() {
|
|
transform("", { presets: [[es2015, { modules: 1 }]] });
|
|
}).toThrow();
|
|
});
|
|
});
|
|
});
|
|
});
|