-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
/
plugin-ordering.test.js
32 lines (28 loc) 路 1.01 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
import * as babel from "@babel/core";
import proposalClassStaticBlock from "../lib/index.js";
import proposalClassProperties from "@babel/plugin-proposal-class-properties";
describe("plugin ordering", () => {
it("should work 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.transformSync(source, {
filename: "example.js",
highlightCode: false,
configFile: false,
babelrc: false,
plugins: [proposalClassProperties, proposalClassStaticBlock],
}).code,
).toMatchInlineSnapshot(`
"function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
class Foo {}
Foo.foo = Foo.bar;
_defineProperty(Foo, \\"bar\\", 42);"
`);
});
});