diff --git a/lib/frontmatter.js b/lib/frontmatter.js index cf09bf4311d9..95dfd4bd9cbc 100644 --- a/lib/frontmatter.js +++ b/lib/frontmatter.js @@ -7,7 +7,7 @@ const semverRange = { conform: require('semver').validRange, message: 'Must be a valid SemVer range' } -const versionIds = Object.keys(require('./all-versions')) +const versionObjs = Object.values(require('./all-versions')) const guideTypes = ['overview', 'quick_start', 'tutorial', 'how_to', 'reference'] const featureVersions = fs.readdirSync(path.posix.join(process.cwd(), 'data/features')) .map(file => path.basename(file, '.yml')) @@ -211,8 +211,9 @@ const featureVersionsProp = { schema.properties.versions = { type: ['object', 'string'], // allow a '*' string to indicate all versions required: true, - properties: versionIds.reduce((acc, versionId) => { - acc[versionId] = semverRange + properties: versionObjs.reduce((acc, versionObj) => { + acc[versionObj.plan] = semverRange + acc[versionObj.shortName] = semverRange return acc }, featureVersionsProp) } diff --git a/tests/helpers/schemas/feature-versions-schema.js b/tests/helpers/schemas/feature-versions-schema.js index 65f2d9302cbb..15b0e662e847 100644 --- a/tests/helpers/schemas/feature-versions-schema.js +++ b/tests/helpers/schemas/feature-versions-schema.js @@ -1,13 +1,18 @@ const { schema } = require('../../../lib/frontmatter') // Copy the properties from the frontmatter schema. -const featureVersions = Object.assign({}, schema.properties.versions) +const featureVersions = { + properties: { + versions: Object.assign({}, schema.properties.versions) + } +} // Remove the feature versions properties. // We don't want to allow features within features! We just want pure versioning. -delete featureVersions.properties.feature +delete featureVersions.properties.versions.properties.feature // Call it invalid if any properties other than version properties are found. featureVersions.additionalProperties = false +featureVersions.properties.versions.additionalProperties = false module.exports = featureVersions