В соответствии с документацией https://jestjs.io/docs/en/expect#custom -matchers-api Я создаю свой сопоставитель, однако this === undefined
внутри функции сопоставления. Я хочу использовать описанные в документации помощники, например this.isNot
, но они недоступны.
В чем может быть причина такого поведения?
setupJestExpect.ts:
expect.extend({
toBeMoment(received: any): CustomMatcherResult {
console.log(this); // undefined <-- here
const pass: boolean = moment.isMoment(received) as boolean;
return pass
? { pass, message: () => '' }
: { pass, message: () => 'expected that received value to be an instance of Moment' };
}
});
foo.spe c .ts:
describe('Foo', () => {
it('should do something', async (): Promise<void> => {
// const data: any[] = ....
expect(data).toEqual(
expect.arrayContaining([
expect.objectContaining({
bar: expect.toBeMoment()
})
])
);
});
});