I've this code:
// button.js
const Button = ({ callbackRequestId, message }) => {
const [isSending, setIsSending] = useState(false);
const resendCallback = callbackRequestId => {
setIsSending(true);
setOpen(false);
http
.post(`/callback_request`, {})
.then(response => {
if (response) setIsSending(false);
})
.catch(error => {
alert(error);
})
.then(() => {
setIsSending(false);
});
};
return (
<div>
{isSending ? (
<CircularProgress size={25} />
) : (
<Button
variant="contained"
id="send-callback-button"
size="small"
color="primary"
onClick={resendCallback}
>
Resend
</Button>
)}
</div>
);
};
// test case
it('should trigger agree confirmation dialog', () => {
const button = wrapper.find('#send-callback-button');
button.simulate('click');
const dialog = wrapper.find(ConfirmationDialog).shallow();
dialog.find('#ok-button').simulate('click');
expect(mockCallBack).toHaveBeenCalled();
});
The problem is resendCallback
function has http request that requires Authorization.
My question is:
How to ignore it or change it to jest.fn()
so its not returning error?
I want to test that isSending
become true
and it render CircularProgress
, but because of the http the test case is failed.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…