zulip/frontend_tests/node_tests/schema.js

56 lines
1.2 KiB
JavaScript

zrequire("schema");
run_test("basics", () => {
assert.equal(schema.check_string("x", "fred"), undefined);
assert.equal(schema.check_string("x", [1, 2]), "x is not a string");
const fields = {
foo: schema.check_string,
bar: schema.check_string,
};
const check_rec = (val) => schema.check_record("my_rec", val, fields);
assert.equal(
check_rec({foo: "apple", bar: "banana"}),
undefined,
);
assert.equal(
check_rec("bogus"),
"my_rec is not a record",
);
assert.equal(
check_rec({foo: "apple"}),
"in my_rec bar is missing",
);
assert.equal(
check_rec({}),
"in my_rec bar is missing, foo is missing",
);
assert.equal(
check_rec({foo: "apple", bar: 42}),
"in my_rec bar is not a string",
);
const check_array = (val) => schema.check_array("lst", val, schema.check_string);
assert.equal(
check_array(["foo", "bar"]),
undefined,
);
assert.equal(
check_array("foo"),
"lst is not an array",
);
assert.equal(
check_array(["foo", 3]),
"in lst we found an item where item is not a string",
);
});