25
votes

I've started a Create React App project with --typescript. When I write a test Im getting a compiler error:

// something-test.tsx
test('something', ()=>{
  expect(1).toBe(1)
})

The error is:

TS1208: All files must be modules when the '--isolatedModules' flag is provided.

From googling I thought the fix was to create a jest.config.tsx with:

module.exports = {
  roots: ["<rootDir>/src"],
  transform: {
    "^.+\\.tsx?$": "ts-jest"
  },
  testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$",
  moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"]
};

However it's made no difference.

1
Hah, just wrote a little test file that looks exactly like yours, except for a different test name.willem

1 Answers

66
votes

You do not have any import statements in your code. This basically means you are not testing anything outside of the test file.

If you test something that is not in the test code (and therefore import something), the test file will become a module and the error will go away 🌹