Estoy haciendo una afirmación en el caso de prueba de Jest en el que hacer clic en una casilla de verificación debería actualizar una devolución de llamada de setState ( onSelect en mi caso, entrando como accesorio para mi componente). Pero dado que onSelect usa una devolución de llamada, mi caso de prueba está fallando. ¿Cómo puedo probar esto? Estoy usando Jest y React Testing Library.
it('should render a selection list', () => { const onSelect = jest.fn(); const { getByTestId } = render( <Selection onSelect={ onSelect }>{ listItems }</Selection> ); const itemToBeSelected = getByTestId('list-item-checkbox-3'); fireEvent.click(itemToBeSelected); expect(onSelect).toBeCalledWith([ 3 ]); }); Expected: [3] Received 1: [Function anonymous] 2: [Function anonymous] 3: [Function anonymous] En el archivo de implementación, onSelect se ve así
onSelect((state) => [ ...state, itemId ] ]);