diff --git a/ghost/core/core/shared/labs.js b/ghost/core/core/shared/labs.js index c4d3ac58db..b66a78665d 100644 --- a/ghost/core/core/shared/labs.js +++ b/ghost/core/core/shared/labs.js @@ -51,7 +51,6 @@ const ALPHA_FEATURES = [ 'tipsAndDonations', 'importMemberTier', 'lexicalIndicators', - // 'adminXOffers', 'adminXDemo', 'membersSpamPrevention' ]; @@ -82,6 +81,10 @@ module.exports.getAll = () => { return labs; }; +module.exports.getAllFlags = function () { + return [...GA_FEATURES, ...BETA_FEATURES, ...ALPHA_FEATURES]; +}; + /** * @param {string} flag * @returns {boolean} diff --git a/ghost/core/test/unit/shared/labs.test.js b/ghost/core/test/unit/shared/labs.test.js index e779728972..1de44d22a5 100644 --- a/ghost/core/test/unit/shared/labs.test.js +++ b/ghost/core/test/unit/shared/labs.test.js @@ -143,3 +143,13 @@ describe('Labs Service', function () { assert.equal(labs.isSet('publicAPI'), false); }); }); + +describe('Labs Service - Flag Integrity', function () { + it('should have no duplicate flags across categories', function () { + const allFlags = labs.getAllFlags(); + + const duplicates = allFlags.filter((flag, index) => allFlags.indexOf(flag) !== index); + + assert.equal(duplicates.length, 0, `There are duplicate flags in the labs configuration: ${duplicates.join(', ')}`); + }); +});