Files
appium/test/jsonwp-proxy/mock-request.js
T
Mykola Mokhnach aeffcd402d refactor: Use axios for the actual proxy implementation instead of the deprecated request module (#409)
BREAKING CHANGE: The request method of Proxy class now accepts and returns axios-specific values
BREAKING CHANGE: The default value of keepAlive setting has been changed to true
2020-05-05 16:52:14 +02:00

38 lines
1.1 KiB
JavaScript

function resFixture (url, method) {
if (/\/status$/.test(url)) {
return [200, {status: 0, value: {foo: 'bar'}}];
}
if (/\/element\/bad\/text$/.test(url)) {
return [500, {status: 11, value: {message: 'Invisible element'}}];
}
if (/\/element\/200\/text$/.test(url)) {
return [200, {status: 11, value: {message: 'Invisible element'}}];
}
if (/\/element\/200\/value$/.test(url)) {
return [200, {status: 0, sessionId: 'innersessionid', value: 'foobar'}];
}
if (/\/session$/.test(url) && method === 'POST') {
return [200, {status: 0, sessionId: '123', value: {browserName: 'boo'}}];
}
if (/\/nochrome$/.test(url)) {
return [100, {status: 0, value: {message: 'chrome not reachable'}}];
}
throw new Error("Can't handle url " + url);
}
async function request (opts) { // eslint-disable-line require-await
const {url, method, json} = opts;
if (/badurl$/.test(url)) {
throw new Error('noworky');
}
const [status, data] = resFixture(url, method, json);
return {
status,
headers: {'content-type': 'application/json; charset=utf-8'},
data,
};
}
export default request;