1
0
mirror of synced 2025-12-25 02:00:48 -05:00
Files
blitz/packages/installer/test/transforms/update-babel-config.test.ts
2021-11-12 12:37:36 +01:00

73 lines
2.0 KiB
TypeScript

import {addBabelPlugin, addBabelPreset, customTsParser} from "@blitzjs/installer"
import j from "jscodeshift"
function executeBabelPlugin(fileStr: string, plugin: string | [string, Object]): string {
return addBabelPlugin(j(fileStr, {parser: customTsParser}), plugin).toSource()
}
function executeBabelPreset(fileStr: string, plugin: string | [string, Object]): string {
return addBabelPreset(j(fileStr, {parser: customTsParser}), plugin).toSource()
}
describe("addBabelPlugin transform", () => {
it("adds babel plugin literal", () => {
const source = `module.exports = {
presets: ["@babel/preset-typescript"],
plugins: [],
}`
expect(executeBabelPlugin(source, "@emotion")).toMatchSnapshot()
})
it("adds babel plugin array", () => {
const source = `module.exports = {
presets: ["@babel/preset-typescript"],
plugins: [],
}`
expect(
executeBabelPlugin(source, ["@babel/plugin-proposal-decorators", {legacy: true}]),
).toMatchSnapshot()
})
it("avoid duplicated", () => {
const source = `module.exports = {
presets: ["@babel/preset-typescript"],
plugins: ["@babel/plugin-proposal-decorators"],
}`
expect(
executeBabelPlugin(source, ["@babel/plugin-proposal-decorators", {legacy: true}]),
).toMatchSnapshot()
})
})
describe("addBabelPreset transform", () => {
it("adds babel preset literal", () => {
const source = `module.exports = {
presets: ["@babel/preset-typescript"],
plugins: [],
}`
expect(executeBabelPreset(source, "blitz/babel")).toMatchSnapshot()
})
it("adds babel preset array", () => {
const source = `module.exports = {
presets: ["@babel/preset-typescript"],
plugins: [],
}`
expect(executeBabelPreset(source, ["blitz/babel", {legacy: true}])).toMatchSnapshot()
})
it("avoid duplicated", () => {
const source = `module.exports = {
presets: [["blitz/babel", {legacy: true}]],
plugins: [],
}`
expect(executeBabelPreset(source, "blitz/babel")).toMatchSnapshot()
})
})