Open
Description
Reproduction example
https://codesandbox.io/s/eloquent-tristan-ixhpuv?file=/src/number.test.js
Prerequisites
- Create a
Number
component with anonChange
handler that calls back to the container. - Create a test where
Number
component is rendered with anonChange
func created withjest.fn()
. UseuserEvent
to click into the field and then simulate a down-arrow keyboard press.
For example:
test('the value can be changed with arrow up & down', async () => {
const initialValue = '7';
const minValue = '5';
const onChange = jest.fn();
render(<NumberField label={LABEL} value={initialValue} onChange={onChange} min={minValue} />);
const input = screen.getByRole('spinbutton');
await userEvent.click(input);
await userEvent.keyboard('{arrowdown}');
expect(onChange).toBeCalledWith('6');
})
Expected behavior
Expected behaviour is for the test to pass. Pressing the down arrow in a browser would cause the number value to reduce by 1 (assuming step=1
).
Actual behavior
Upon running the tests, the test fails with the following result:
expect(jest.fn()).toBeCalledWith(...expected)
Expected: "6"
Number of calls: 0
> 64 | expect(onChange).toBeCalledWith('6');
| ^
65 | });
66 | });
User-event version
14.4.3
Environment
Testing Library framework: @testing-library/[email protected]
JS framework: [email protected]
Test environment: [email protected]
DOM implementation: [email protected]
Additional context
No response