VerifyContext
Deprecated. Use playbook filters instead. Verifies path in context - Verifies path existence - If matching object is an array - verify fields exists in each of the objects in the array - If matching object is not an array - verify fields exists in matching object - if 'expectedValue' is given - ensure that the given value is equal to the context path
- Type
- javascript
- Pack
- DeveloperTools
Source
var path = args.path;
var fields = args.fields ? args.fields.split(",") : [];
var expectedValue = args.expectedValue;
var verifyFields = function(obj) {
fields.forEach(function (field) {
var value = dq(obj, field.trim());
if (value === undefined || value === null) {
throw 'Field ' + field + ' is missing from ' + JSON.stringify(obj) + '.';
}
});
}
var contextObject = dq(invContext, path);
if (contextObject === undefined || contextObject === null) {
throw 'Path ' + path + ' is not in context.';
}
var isArray = contextObject instanceof Array;
if (isArray) {
contextObject.forEach(verifyFields);
} else {
verifyFields(contextObject);
}
if (expectedValue) {
var value;
try {
value = JSON.parse(expectedValue);
} catch (e) {
value = expectedValue;
}
if (JSON.stringify(value) !== JSON.stringify(contextObject)) {
throw ('Context path ' + path + ' is not equal to expected value. Found: ' + JSON.stringify(contextObject) + ', expected: ' + JSON.stringify(value));
}
}