|
|
|
|
|
by kolodny
861 days ago
|
|
Creating an override is basically just providing a placeholder for a value to be injected via React Context. I view this as a form of dependency injection. Contrast this with how this would be done in vanilla Playwright with reading it from a query param or exposing a global to call page.evaluate on which is more along the lines of forcing test code into a component. Note that if you needed a specific reference in an override there isn't a good way to get that via Playwright, consider this silly example: it('can test spies', async () => {
const spy = browserMock.fn();
const { page } = await render(
app =>
<LogoutButtonAction.Override with={() => spy}>
{app}
<LogoutButtonAction.Override>
);
await page.getByText('Log out').click();
expect(await spy).toHaveBeenCalled();
});
|
|