I am getting the current error
Cannot read property 'indexOf' of undefined
at Function.isPendingSpecException
I think the issue comes down to this line of code
TokenRepositoryMock.findTokenRecordByToken.mockImplementationOnce(
async () => null,
)
If I change that code to this I no longer get the error.
TokenRepositoryMock.findTokenRecordByToken.mockImplementationOnce(
async () => ValidToken,
)
I need this function to return null so I can test the failing code. Here is the method I am testing
public static validate(): Middleware {
return async (ctx: Context, next: Next): Promise<void> => {
const token = ctx.data.get('token')
const tokenRecord: AccountToken | null = await TokenRepository.findTokenRecordByToken(
token,
)
if (!tokenRecord) {
ctx.status = HttpStatus.UNAUTHORIZED
throw new InvalidTokenError()
}
ctx.data.set('token', tokenRecord)
await next()
}
}
I have seen a few posts online stating that it could be an error with Intellij IDEA ( https://stackoverflow.com/a/54425293/9431766 ) and jest 24.0.0, however, I am running 26.6.3 and also running this both via PhpStorm and command line and still getting the same error.
Any suggestions on how to fix this?
Ok so I did find something in my code that fixed it.
I am importing TokenRepository
from an external module that we have.
import { TokenRepository } from '@company/library'
And then to mock it I was doing this
jest.mock('@company/library')
const TokenRepositoryMock = mocked(TokenRepository, true)
by updating the jest.mock
path it somehow started to work correctly.
ie. jest.mock('@company/library/dist/token/TokenRepository')
weirdly enough this started to work again
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.