in src/Utils/PassFailCriteriaUtil.ts [8:54]
export function getPassFailCriteriaFromString(passFailCriteria: (string | {[key: string]: string})[]): { [key: string]: number } {
let failureCriteriaValue : {[key: string] : number} = {};
passFailCriteria.forEach(criteria => {
let criteriaString = criteria as string;
let data = {
aggregate: "",
clientMetric: "",
condition: "",
value: "",
requestName: "",
action: "",
}
if(typeof criteria !== "string"){
let request = Object.keys(criteria)[0]
data.requestName = request;
criteriaString = criteria[request]
}
let tempStr: string = "";
for(let i=0; i<criteriaString.length; i++){
if(criteriaString[i] == '('){
data.aggregate = tempStr.trim();
tempStr = "";
}
else if(criteriaString[i] == ')'){
data.clientMetric = tempStr;
tempStr = "";
}
else if(criteriaString[i] == ','){
data.condition = tempStr.substring(0, indexOfFirstDigit(tempStr)).trim();
data.value = tempStr.substr(indexOfFirstDigit(tempStr)).trim();
tempStr = "";
}
else{
tempStr += criteriaString[i];
}
}
if(criteriaString.indexOf(',') != -1){
data.action = tempStr.trim()
}
else{
data.condition = tempStr.substring(0, indexOfFirstDigit(tempStr)).trim();
data.value = tempStr.substr(indexOfFirstDigit(tempStr)).trim();
}
validateCriteriaAndConvertToWorkingStringModel(data, failureCriteriaValue);
});
return failureCriteriaValue;
}