В настоящее время у меня есть следующий метод компонента, который я пытаюсь протестировать:
class ClickToApply {
constructor() {
....
}
sendAJAX() {
dojo.xhrPost({
headers: {
'content-type': 'application/x-www-form-urlencoded'
},
handleAs: 'text',
postData: `....`,
url: `https://${window.location.host}/.html`,
load: () => {
this.handleConfirmMessage(promoCode, 'success');
},
error: error => {
console.log(`ERROR: ${error}`);
this.handleConfirmMessage(promoCode, 'failure');
}
})
}
}
По сути, я использую dojo
для обработки отправки AJAX-запроса.
Я пыталсячтобы смоделировать dojo.xhrPost
метод, но я не думаю, что я делаю это правильно:
describe('ClickToApply', () => {
let clickToApply;
beforeEach(() => {
clickToApply = new ClickToApply()
})
describe('sendAJAX method', () => {
const xhrMockClass = () => ({
load: jest.fn(),
error: jest.fn(),
})
window.dojo = {}
window.dojo.xhrPost = jest.fn().mockImplementation(xhrMockClass).mockResolvedValueOnce()
describe('if AJAX request is successful', () => {
test('should invoke', () => {
const spy = jest.spyOn(clickToApply, 'handleConfirmMessage')
clickToApply.sendAJAX()
expect(spy).toBeCalled()
})
})
})
}
У меня возникают проблемы с тем, как смоделировать метод dojo и как вызвать, если он успешен или имеет ошибкупосле отправки вызова AJAX.
Будем благодарны за любые входные данные.