babel/packages/babel-preset-env/test/targets-parser.spec.js
2018-01-22 15:44:10 -06:00

173 lines
3.4 KiB
JavaScript

import assert from "assert";
import getTargets from "../src/targets-parser";
describe("getTargets", () => {
it("parses", () => {
assert.deepEqual(
getTargets({
chrome: 49,
firefox: "55",
ie: "9",
node: "6.10",
electron: "1.6",
}),
{
chrome: "49.0.0",
electron: "1.6.0",
firefox: "55.0.0",
ie: "9.0.0",
node: "6.10.0",
},
);
});
describe("browser", () => {
it("merges browser key targets", () => {
assert.deepEqual(
getTargets({
browsers: "chrome 56, ie 11, firefox 51, safari 9",
chrome: "49",
firefox: "55",
ie: "9",
}),
{
chrome: "49.0.0",
firefox: "55.0.0",
ie: "9.0.0",
safari: "9.0.0",
},
);
});
it("works with TP versions", () => {
assert.deepEqual(
getTargets({
browsers: "safari tp",
}),
{
safari: "tp",
},
);
});
it("returns TP version in lower case", () => {
assert.deepEqual(
getTargets({
safari: "TP",
}),
{
safari: "tp",
},
);
});
it("ignores invalid", () => {
assert.deepEqual(
getTargets({
browsers: 59,
chrome: "49",
firefox: "55",
ie: "11",
}),
{
chrome: "49.0.0",
firefox: "55.0.0",
ie: "11.0.0",
},
);
});
});
describe("esmodules", () => {
it("returns browsers supporting modules", () => {
assert.deepEqual(
getTargets({
esmodules: true,
}),
{
chrome: "61.0.0",
safari: "10.1.0",
ios: "10.3.0",
edge: "16.0.0",
},
);
});
it("returns browsers supporting modules, ignoring browsers key", () => {
assert.deepEqual(
getTargets({
esmodules: true,
browsers: "ie 8",
}),
{
chrome: "61.0.0",
safari: "10.1.0",
ios: "10.3.0",
edge: "16.0.0",
},
);
});
it("returns browser supporting modules and keyed browser overrides", () => {
assert.deepEqual(
getTargets({
esmodules: true,
ie: 11,
}),
{
chrome: "61.0.0",
safari: "10.1.0",
ios: "10.3.0",
ie: "11.0.0",
edge: "16.0.0",
},
);
});
it("returns browser supporting modules and keyed browser overrides, ignoring browsers field", () => {
assert.deepEqual(
getTargets({
esmodules: true,
browsers: "ie 10",
ie: 11,
}),
{
chrome: "61.0.0",
safari: "10.1.0",
ios: "10.3.0",
ie: "11.0.0",
edge: "16.0.0",
},
);
});
});
describe("node", () => {
it("should return the current node version with option 'current'", () => {
assert.deepEqual(
getTargets({
node: true,
}),
{
node: process.versions.node,
},
);
});
});
describe("electron", () => {
it("should be its own target", () => {
assert.deepEqual(
getTargets({
chrome: "46",
electron: "0.34",
}),
{
chrome: "46.0.0",
electron: "0.34.0",
},
);
});
});
});