export function assertConfig(config:tsd.Config, values:any, message:string) { assert.ok(config, message + ': config'); assert.ok(values, message + ': values'); assert.instanceOf(config, tsd.Config, message + ': config'); helper.propStrictEqual(config, values, 'path', message); helper.propStrictEqual(config, values, 'version', message); helper.propStrictEqual(config, values, 'repo', message); helper.propStrictEqual(config, values, 'ref', message); if (values.repoOwner) { helper.propStrictEqual(config, values, 'repoOwner', message); } if (values.repoProject) { helper.propStrictEqual(config, values, 'repoProject', message); } var json = config.toJSON(); assert.jsonSchema(json, helper.getConfigSchema(), message + ': schema'); helper.propStrictEqual(json, values, 'path', message + ': json'); helper.propStrictEqual(json, values, 'version', message + ': json'); helper.propStrictEqual(json, values, 'repo', message + ': json'); helper.propStrictEqual(json, values, 'ref', message + ': json'); if (values.installed) { assert.like(json.installed, values.installed); } else { assert.like(json.installed, {}); } }
it('match "' + String(data.pattern) + '"', () => { var pattern = new tsd.NameMatcher(data.pattern); var paths = pattern.filter(list, []).map((def:tsd.Def) => { return def.path; }); assert.isArray(paths, 'paths'); assert.lengthOf(paths, data.result.length, 'paths'); assert.like(paths, data.result, 'paths'); });
}).then((json) => { assert.like(json, changed, 'saved data json'); assert.jsonSchema(json, helper.getConfigSchema(), 'saved valid json'); return null; });