I'm using Typescript and trying to test my code with Jest, and I made a type casting on a class so I can mock it.
Unfortunately, when I ran the test suite I got the following error:
SyntaxError: C:\Projects\sim_editor\server\src\tests\routes.test.ts: Missing semicolon (7:37)
Here is my code:
describe('Unit test api routes', () => {
jest.mock('../controllers')
const mkControllers = Controllers as jest.MockedClass<typeof Controllers>
beforeEach(() => {
mkControllers.mockClear()
})
.
.
.
The rest of my test suite
})
The error was referring the line where I declared "mkControllers".
Here is a deeper log of the error:
at Parser._raise (node_modules/@babel/parser/src/parser/error.js:97:45)
at Parser.raiseWithData (node_modules/@babel/parser/src/parser/error.js:92:17)
at Parser.raise (node_modules/@babel/parser/src/parser/error.js:41:17)
at Parser.semicolon (node_modules/@babel/parser/src/parser/util.js:131:10)
at Parser.parseVarStatement (node_modules/@babel/parser/src/parser/statement.js:707:10)
at Parser.parseStatementContent (node_modules/@babel/parser/src/parser/statement.js:223:21)
at Parser.parseStatement (node_modules/@babel/parser/src/parser/statement.js:163:17)
at Parser.parseBlockOrModuleBlockBody (node_modules/@babel/parser/src/parser/statement.js:880:25)
at Parser.parseBlockBody (node_modules/@babel/parser/src/parser/statement.js:856:10)
at Parser.parseBlock (node_modules/@babel/parser/src/parser/statement.js:826:10)
Thanks.
Apparently I didn't configure Babel to work with Typescript, as it is essential for Jest to use it. Make sure you follow the instructions here, under "Using Babel" and "Using Typescript"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With