Skip to content

Latest commit

 

History

History
83 lines (66 loc) · 1.65 KB

README.md

File metadata and controls

83 lines (66 loc) · 1.65 KB

flow-aware-swc-jest

Use @swc/jest even if you are using flow.

babel-jest (61s) flow-aware-swc-jest (23s)
Screenshot 2024-02-09 at 1 30 58 AM Screenshot 2024-02-09 at 1 27 52 AM

Installation

npm i --save-dev flow-aware-swc-jest

Configuration

  1. You need to configure .swcrc like below.
{
  "jsc": {
    "parser": {
      "syntax": "typescript",
      "jsx": true,
      "tsx": true,
      "dynamicImport": false,
      "privateMethod": false,
      "functionBind": false,
      "exportDefaultFrom": false,
      "exportNamespaceFrom": false,
      "decorators": false,
      "decoratorsBeforeExport": false,
      "topLevelAwait": false,
      "importMeta": false,
      "preserveAllComments": false
    },
    "transform": null,
    "target": "es5",
    "loose": true,
    "externalHelpers": false,
    "keepClassNames": false
  },
  "isModule": true
}
  1. Configure jest config trasform
transform: {
  '^.+\\.(t|j)sx?$': 'flow-aware-swc-jest',
},

I have error when jest.spyOn

TypeError: Cannot redefine property or TypeError: Cannot read properties of undefined

You need to do mock as a esModule

jest.mock("./path_to_spy", () => {
  return {
    __esModule: true, // <- Important!
    ...jest.requireActual("./path_to_spy"),
  };
});