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' ); });