-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
/
plugin-ordering.test.js
42 lines (41 loc) 路 1.16 KB
/
plugin-ordering.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import * as babel from "@babel/core";
import proposalClassStaticBlock from "../lib/index.js";
describe("plugin ordering", () => {
it("should throw when @babel/plugin-proposal-class-static-block is after class features plugin", () => {
const source = `class Foo {
static {
this.foo = Foo.bar;
}
static bar = 42;
}
`;
expect(() => {
babel.transform(source, {
filename: "example.js",
highlightCode: false,
configFile: false,
babelrc: false,
plugins: [
"@babel/plugin-proposal-class-properties",
proposalClassStaticBlock,
],
});
}).toThrowErrorMatchingInlineSnapshot(`
"/Users/jh/code/babel/example.js: Incorrect plugin orders, \`@babel/plugin-proposal-class-static-block\` should be placed before class features plugins
{
\\"plugins\\": [
\\"@babel/plugin-proposal-class-static-block\\",
\\"@babel/plugin-proposal-private-property-in-object\\",
\\"@babel/plugin-proposal-private-methods\\",
\\"@babel/plugin-proposal-class-properties\\",
]
}
1 | class Foo {
> 2 | static {
| ^
3 | this.foo = Foo.bar;
4 | }
5 | static bar = 42;"
`);
});
});