|
@ -4,9 +4,8 @@ const get = require("lodash.get"); |
|
|
|
|
|
|
|
|
function validateMonitorChecks(res, checks, bean) { |
|
|
function validateMonitorChecks(res, checks, bean) { |
|
|
const responseText = typeof data === "string" ? res.data : JSON.stringify(res.data); |
|
|
const responseText = typeof data === "string" ? res.data : JSON.stringify(res.data); |
|
|
let checkObj; |
|
|
|
|
|
|
|
|
|
|
|
(this.checks || []).forEach(check => { |
|
|
(checks || []).forEach(check => { |
|
|
switch (check.type) { |
|
|
switch (check.type) { |
|
|
case "HTTP_STATUS_CODE_SHOULD_EQUAL": |
|
|
case "HTTP_STATUS_CODE_SHOULD_EQUAL": |
|
|
if (checkStatusCode(res.status, check.value)) { |
|
|
if (checkStatusCode(res.status, check.value)) { |
|
@ -54,42 +53,38 @@ function validateMonitorChecks(res, checks, bean) { |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case "RESPONSE_SELECTOR_SHOULD_EQUAL": |
|
|
case "RESPONSE_SELECTOR_SHOULD_EQUAL": |
|
|
checkObj = JSON.parse(check.value); |
|
|
if (get(res.data, check.value.selectorPath) === check.value.selectorValue) { |
|
|
if (get(res, checkObj.selector) === checkObj.value) { |
|
|
bean.msg += `, response selector equals '${check.value.selectorValue}'`; |
|
|
bean.msg += `, response selector equals '${checkObj.value}'`; |
|
|
|
|
|
bean.status = UP; |
|
|
bean.status = UP; |
|
|
} else { |
|
|
} else { |
|
|
throw new Error(`${bean.msg}, but response selector '${checkObj.selector}' does not equal '${checkObj.value}'`); |
|
|
throw new Error(`${bean.msg}, but response selector '${check.value.selectorPath}' does not equal '${check.value.selectorValue}'`); |
|
|
} |
|
|
} |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case "RESPONSE_SELECTOR_SHOULD_NOT_EQUAL": |
|
|
case "RESPONSE_SELECTOR_SHOULD_NOT_EQUAL": |
|
|
checkObj = JSON.parse(check.value); |
|
|
if (get(res.data, check.value.selectorPath) !== check.value.selectorValue) { |
|
|
if (get(res, checkObj.selector) !== checkObj.value) { |
|
|
bean.msg += `, response selector does not equal '${check.value.selectorValue}'`; |
|
|
bean.msg += `, response selector does not equal '${checkObj.value}'`; |
|
|
|
|
|
bean.status = UP; |
|
|
bean.status = UP; |
|
|
} else { |
|
|
} else { |
|
|
throw new Error(`${bean.msg}, but response selector '${checkObj.selector}' does equal '${checkObj.value}'`); |
|
|
throw new Error(`${bean.msg}, but response selector '${check.value.selectorPath}' does equal '${check.value.selectorValue}'`); |
|
|
} |
|
|
} |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case "RESPONSE_SELECTOR_SHOULD_MATCH_REGEX": |
|
|
case "RESPONSE_SELECTOR_SHOULD_MATCH_REGEX": |
|
|
checkObj = JSON.parse(check.value); |
|
|
if (get(res.data, check.value.selectorPath).test(new RegExp(check.value.selectorValue))) { |
|
|
if (get(res, checkObj.selector).test(new RegExp(checkObj.value))) { |
|
|
bean.msg += `, response selector matches regex '${check.value.selectorValue}'`; |
|
|
bean.msg += `, response selector matches regex '${checkObj.value}'`; |
|
|
|
|
|
bean.status = UP; |
|
|
bean.status = UP; |
|
|
} else { |
|
|
} else { |
|
|
throw new Error(`${bean.msg}, but response selector '${checkObj.selector}' does not match regex '${checkObj.value}'`); |
|
|
throw new Error(`${bean.msg}, but response selector '${check.value.selectorPath}' does not match regex '${check.value.selectorValue}'`); |
|
|
} |
|
|
} |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case "RESPONSE_SELECTOR_SHOULD_NOT_MATCH_REGEX": |
|
|
case "RESPONSE_SELECTOR_SHOULD_NOT_MATCH_REGEX": |
|
|
checkObj = JSON.parse(check.value); |
|
|
if (!get(res.data, check.value.selectorPath).test(new RegExp(check.value.selectorValue))) { |
|
|
if (!get(res, checkObj.selector).test(new RegExp(checkObj.value))) { |
|
|
bean.msg += `, response selector does not match regex '${check.value.selectorValue}'`; |
|
|
bean.msg += `, response selector does not match regex '${checkObj.value}'`; |
|
|
|
|
|
bean.status = UP; |
|
|
bean.status = UP; |
|
|
} else { |
|
|
} else { |
|
|
throw new Error(`${bean.msg}, but response selector '${checkObj.selector}' does match regex '${checkObj.value}'`); |
|
|
throw new Error(`${bean.msg}, but response selector '${check.value.selectorPath}' does match regex '${check.value.selectorValue}'`); |
|
|
} |
|
|
} |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|