From 854fe85151503f4c2fe546b252c2b3c038a46782 Mon Sep 17 00:00:00 2001 From: Chris Clark Date: Mon, 10 Aug 2015 11:35:41 -0700 Subject: [PATCH] Check for duplicate schema titles --- src/api/common/schema-validator.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/api/common/schema-validator.js b/src/api/common/schema-validator.js index aa9f8d1e..a11aa08a 100644 --- a/src/api/common/schema-validator.js +++ b/src/api/common/schema-validator.js @@ -4,6 +4,7 @@ const _ = require('lodash'); const fs = require('fs'); const path = require('path'); +const assert = require('assert'); const validator = require('is-my-json-valid'); const core = require('./utils').core; const ValidationError = require('./errors').ValidationError; @@ -33,6 +34,9 @@ function endsWith(str, suffix) { function loadSchemas(dir) { const filenames = fs.readdirSync(dir).filter(name => endsWith(name, '.json')); const schemas = filenames.map(name => loadSchema(path.join(dir, name))); + const titles = _.map(schemas, schema => schema.title); + const duplicates = _.keys(_.pick(_.countBy(titles), count => count > 1)); + assert(duplicates.length === 0, 'Duplicate schemas for: ' + duplicates); return _.indexBy(schemas, 'title'); }