Skip to content

Commit

Permalink
test: make sure custom asymmetric matchers work (#32829)
Browse files Browse the repository at this point in the history
This adds a test for a regression introduced by #32366 and fixed by
#32795.
  • Loading branch information
dgozman committed Sep 26, 2024
1 parent 3b86a9c commit 6465f0b
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions tests/playwright-test/expect.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1103,3 +1103,39 @@ test('expect.extend should fall back to legacy behavior', async ({ runInlineTest
'bar',
]);
});

test('custom asymmetric matchers should work with expect.extend', async ({ runInlineTest }) => {
const result = await runInlineTest({
'expect-test.spec.ts': `
import { test, expect as baseExpect, mergeExpects } from '@playwright/test';
const expect1 = baseExpect.extend({
isFoo(received: unknown, expected: string) {
return { pass: received === 'foo', message: () => '' };
},
});
const expect2 = baseExpect.extend({
isSomething(received: unknown, expected: string) {
return { pass: received === expected, message: () => '' };
},
});
const expect = mergeExpects(expect1, expect2);
test('example', () => {
expect('foo').toEqual(expect.isFoo());
expect('bar').toEqual(expect.isSomething('bar'));
try {
expect('foo2').toEqual(expect.isFoo());
console.log('should not run 1');
} catch (e) {
}
try {
expect('bar2').toEqual(expect.isSomething('bar'));
console.log('should not run 2');
} catch (e) {
}
});
`,
});
expect(result.exitCode).toBe(0);
expect(result.passed).toBe(1);
expect(result.output).not.toContain('should not run');
});

0 comments on commit 6465f0b

Please sign in to comment.