To apply jest's expect.extend() method to a specific test file using TypeScript, you can follow these steps:
Create a file called setup-tests.ts
in the same directory as your test file.
Inside setup-tests.ts
, import @jest/globals
and the TypeScript types for ExpectExtendMap
and Matchers
.
import '@jest/globals';
import { ExpectExtendMap, Matchers } from '@jest/types';
Define your custom matcher by extending Matchers
and exporting it.
export interface CustomMatchers extends Matchers<unknown> {
toBeValidEmail(): void;
}
export const customMatchers: ExpectExtendMap = {
toBeValidEmail(received) {
// validation logic here
expect(received).toBeTruthy();
},
};
In your test file, import setup-tests.ts
and call expect.extend()
with your custom matcher.
import './setup-tests';
it('should validate email addresses', () => {
expect('example@domain.com').toBeValidEmail();
});
Ensure that your test file is being transpiled by TypeScript by adding the appropriate configuration in tsconfig.json
.
{
"compilerOptions": {
"target": "esnext",
"module": "commonjs",
"esModuleInterop": true,
"outDir": "dist",
"types": ["jest"],
"typeRoots": ["./node_modules/@types", "./src/types"],
"strict": true
},
"include": ["src/**/*", "test/**/*"],
"exclude": ["node_modules", "**/*.spec.*", "**/__tests__/*"]
}
That's it! You can now use your custom matcher in your test file.
Asked: 2022-11-20 11:00:00 +0000
Seen: 9 times
Last updated: Mar 19 '22