babel/packages/babel-parser/test/plugin-options.js
Nicolò Ribaudo 6eab6f5863 [Babylon] Take the first set of options for plugins (#7994)
* [Babylon] Take the first set of options for plugins

* Fix test

* Docs
2018-05-24 08:54:32 -07:00

32 lines
1.1 KiB
JavaScript

import { parse } from "../lib";
function getParser(code, plugins) {
return () => parse(code, { plugins, sourceType: "module" });
}
describe("plugin options", function() {
describe("the first options are used", function() {
// NOTE: This test is not specific about decorators, it can be applied
// to any plugin with options.
const NAME = "decorators";
const OPT_1 = [NAME, { decoratorsBeforeExport: true }];
const OPT_2 = [NAME, { decoratorsBeforeExport: false }];
const SYNTAX_1 = "@dec export class C {}";
const SYNTAX_2 = "export @dec class C {}";
const SYNTAX_DEFAULT = "export @dec class C {}";
it("when they aren't specified", function() {
expect(getParser(SYNTAX_DEFAULT, [NAME, OPT_1])).not.toThrow();
expect(getParser(SYNTAX_DEFAULT, [NAME, OPT_2])).not.toThrow();
});
it("when they are specified", function() {
expect(getParser(SYNTAX_1, [OPT_1, OPT_2])).not.toThrow();
expect(getParser(SYNTAX_2, [OPT_2, OPT_1])).not.toThrow();
expect(getParser(SYNTAX_1, [OPT_2, OPT_1])).toThrow();
expect(getParser(SYNTAX_2, [OPT_1, OPT_2])).toThrow();
});
});
});