lib/identify-command-from-req.js (45 lines of code) (raw):
const isSessionReq = require('./is-session-req');
// TODO: Other trigger criteria
// see https://support.saucelabs.com/hc/en-us/articles/225265388-Selenium-Commands-that-Trigger-Screenshots
function isEndingSession(req) {
return {
type: 'session-end',
result: req.method === 'DELETE' && isSessionReq(req) && (/session\/.+?\/?$/).test(req.path),
};
}
function isOpeningUrl(req) {
return {
type: 'url',
result: req.method === 'POST' && isSessionReq(req) && (/url\/?$/).test(req.path),
};
}
function isClicking(req) {
return {
type: 'click',
result: req.method === 'POST' && isSessionReq(req) && (/element\/.+?\/click\/?$/).test(req.path),
};
}
function isSendingKeys(req) {
return {
type: 'keys',
result: req.method === 'POST' && isSessionReq(req) && (/element\/.+?\/value\/?$/).test(req.path),
};
}
function isExecutingJavascript(req) {
return {
type: 'executing-javascript',
result: req.method === 'POST' && isSessionReq(req) && (/execute\/a?sync\/?$/).test(req.path),
};
}
function isFindingElement(req) {
return {
type: 'element',
result: req.method === 'POST' && isSessionReq(req) && (/elements?\/?$/).test(req.path),
};
}
module.exports = {
isEndingSession,
isOpeningUrl,
isClicking,
isSendingKeys,
isExecutingJavascript,
isFindingElement
};