'Typescript Super is undefined when running unit tests with jest
I use super.catch inside catch from derived class. And code works fine when I do manual testing. But when I run jest unit tests it says that super is undefined. Does anyone know why? And how it can be fixed?
Code example:
export class CustomExceptionsFilter extends BaseExceptionFilter {
catch(exception: Error | HttpException, host: ArgumentsHost) {
logger.error(exception);
super.catch(exception, host);
}
}
Unit test example:
beforeEach(async () => {
filterInstance = new CustomExceptionsFilter();
host = mockArgumentsHost;
});
it('Test', async () => {
const baseClassSpy = jest.spyOn(CustomExceptionsFilter.prototype, 'catch');
const httpException = new HttpException('Test exception', 404);
filterInstance.catch(httpException, host);
expect(baseClassSpy).toHaveBeenCalled();
});
Error I get:
TypeError: Cannot read properties of undefined (reading 'reply')
35 |
36 | logger.error(exception);
> 37 | super.catch(exception, host);
| ^
38 | }
39 | }
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
