diff --git a/test/e2e-api/admin/members.test.js b/test/e2e-api/admin/members.test.js index 679f025e5f..5e0a7bf67f 100644 --- a/test/e2e-api/admin/members.test.js +++ b/test/e2e-api/admin/members.test.js @@ -5,18 +5,19 @@ const sinon = require('sinon'); const testUtils = require('../../utils'); const localUtils = require('./utils'); const config = require('../../../core/shared/config'); -const labs = require('../../../core/shared/labs'); const Papa = require('papaparse'); +const {mockManager} = require('../../utils/e2e-framework'); + describe('Members API', function () { let request; beforeEach(function () { - sinon.stub(labs, 'isSet').withArgs('multipleProducts').returns(false); + mockManager.mockLabsDisabled('multipleProducts'); }); afterEach(function () { - sinon.restore(); + mockManager.restore(); }); before(async function () { diff --git a/test/e2e-api/admin/products.test.js b/test/e2e-api/admin/products.test.js index f7ebe9447f..29adf42cb1 100644 --- a/test/e2e-api/admin/products.test.js +++ b/test/e2e-api/admin/products.test.js @@ -1,8 +1,6 @@ const should = require('should'); -const sinon = require('sinon'); -const labs = require('../../../core/shared/labs'); -const {agentProvider, fixtureManager} = require('../../utils/e2e-framework'); +const {agentProvider, fixtureManager, mockManager} = require('../../utils/e2e-framework'); describe('Tiers API', function () { let agent; @@ -14,13 +12,13 @@ describe('Tiers API', function () { }); beforeEach(function () { - sinon.stub(labs, 'isSet').withArgs('multipleProducts').returns(false); + mockManager.mockLabsDisabled('multipleProducts'); const stripeService = require('../../../core/server/services/stripe'); stripeService.api._configured = true; }); afterEach(function () { - sinon.restore(); + mockManager.restore(); const stripeService = require('../../../core/server/services/stripe'); stripeService.api._configured = false; }); diff --git a/test/utils/e2e-framework-mock-manager.js b/test/utils/e2e-framework-mock-manager.js index e0477ecb51..38d4b52814 100644 --- a/test/utils/e2e-framework-mock-manager.js +++ b/test/utils/e2e-framework-mock-manager.js @@ -28,7 +28,26 @@ const mockLabsEnabled = (flag, alpha = true) => { configUtils.set('enableDeveloperExperiments', true); } - mocks.labs[flag] = sinon.stub(labs, 'isSet').withArgs(flag).returns(true); + if (mocks.labs[flag]) { + mocks.labs[flag].returns(true); + } else { + mocks.labs[flag] = sinon.stub(labs, 'isSet').withArgs(flag).returns(true); + } +}; + +const mockLabsDisabled = (flag, alpha = true) => { + mocks.labs = mocks.labs || {}; + + // We assume we should enable alpha experiments unless explicitly told not to! + if (!alpha) { + configUtils.set('enableDeveloperExperiments', true); + } + + if (mocks.labs[flag]) { + mocks.labs[flag].returns(false); + } else { + mocks.labs[flag] = sinon.stub(labs, 'isSet').withArgs(flag).returns(false); + } }; const sentEmailCount = (count) => { @@ -74,6 +93,7 @@ const restore = () => { module.exports = { mockMail, mockLabsEnabled, + mockLabsDisabled, restore, assert: { sentEmailCount, diff --git a/test/utils/e2e-framework.js b/test/utils/e2e-framework.js index 2bed77be43..ee303aa681 100644 --- a/test/utils/e2e-framework.js +++ b/test/utils/e2e-framework.js @@ -129,7 +129,7 @@ const getAdminAPIAgent = async () => { originURL }); } catch (error) { - throw new Error('Unable to create test agent'); + error.message = `Unable to create test agent. ${error.message}`; } };