Source code

Revision control

Copy as Markdown

Other Tools

'use strict';
// Helper assertion functions to validate dictionary fields
// on dictionary objects returned from APIs
function assert_unsigned_int_field(object, field) {
const num = object[field];
assert_true(Number.isInteger(num) && (num >= 0),
`Expect dictionary.${field} to be unsigned integer`);
}
function assert_int_field(object, field) {
const num = object[field];
assert_true(Number.isInteger(num),
`Expect dictionary.${field} to be integer`);
}
function assert_string_field(object, field) {
const str = object[field];
assert_equals(typeof str, 'string',
`Expect dictionary.${field} to be string`);
}
function assert_number_field(object, field) {
const num = object[field];
assert_equals(typeof num, 'number',
`Expect dictionary.${field} to be number`);
}
function assert_boolean_field(object, field) {
const bool = object[field];
assert_equals(typeof bool, 'boolean',
`Expect dictionary.${field} to be boolean`);
}
function assert_array_field(object, field) {
assert_true(Array.isArray(object[field]),
`Expect dictionary.${field} to be array`);
}
function assert_dict_field(object, field) {
assert_equals(typeof object[field], 'object',
`Expect dictionary.${field} to be plain object`);
assert_not_equals(object[field], null,
`Expect dictionary.${field} to not be null`);
}
function assert_enum_field(object, field, validValues) {
assert_string_field(object, field);
assert_true(validValues.includes(object[field]),
`Expect dictionary.${field} to have one of the valid enum values: ${validValues}`);
}
function assert_optional_unsigned_int_field(object, field) {
if(object[field] !== undefined) {
assert_unsigned_int_field(object, field);
}
}
function assert_optional_int_field(object, field) {
if(object[field] !== undefined) {
assert_int_field(object, field);
}
}
function assert_optional_string_field(object, field) {
if(object[field] !== undefined) {
assert_string_field(object, field);
}
}
function assert_optional_number_field(object, field) {
if(object[field] !== undefined) {
assert_number_field(object, field);
}
}
function assert_optional_boolean_field(object, field) {
if(object[field] !== undefined) {
assert_boolean_field(object, field);
}
}
function assert_optional_array_field(object, field) {
if(object[field] !== undefined) {
assert_array_field(object, field);
}
}
function assert_optional_dict_field(object, field) {
if(object[field] !== undefined) {
assert_dict_field(object, field);
}
}
function assert_optional_enum_field(object, field, validValues) {
if(object[field] !== undefined) {
assert_enum_field(object, field, validValues);
}
}