2018-04-27 15:04:37 -07:00

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();
});
});
});
});