34 lines
748 B
JavaScript
Raw Normal View History

2019-01-13 23:58:35 +01:00
function plugin (wdInstance, requests) {
if (typeof wdInstance.addCommand !== 'function') {
throw new Error('You can\'t use WebdriverAjaxStub with this version of WebdriverIO');
}
function stub(requests, done) {
window.XMLHttpRequest = function () {
this.open = function (method, url) {
this.method = method;
this.url = url;
};
this.send = function () {
this.status = 200;
this.readyState = 4;
const response = requests.shift() || [];
this.response = response;
this.responseText = response;
this.onreadystatechange();
};
return this;
};
done();
}
wdInstance.addCommand('setupStub', function() {
return wdInstance.executeAsync(stub, requests);
});
}
module.exports.init = plugin;