var test = require('tap').test;
var data = require('../fixtures/data');
var validate = require('../../lib/validate');

test('spec', function (t) {
    t.type(validate, 'function');
    t.end();
});

test('valid', function (t) {
    validate(JSON.parse(data.example.json), function (err, res) {
        t.equal(err, null);
        t.type(res, 'object');
        t.end();
    });
});

test('invalid', function (t) {
    validate({foo: 1}, function (err, res) {
        t.equal(Array.isArray(err), true);
        t.type(res, 'undefined');
        t.type(err[0], 'object');
        t.type(err[0].keyword, 'string');
        t.type(err[0].dataPath, 'string');
        t.type(err[0].schemaPath, 'string');
        t.type(err[0].message, 'string');
        t.type(err[0].params, 'object');
        t.type(err[0].params.missingProperty, 'string');
        t.end();
    });
});