From b7e9f0b67f1ce100254395b40acaebf8f3bc0c0d Mon Sep 17 00:00:00 2001 From: Miguel Serrano Date: Thu, 11 Nov 2021 12:20:06 +0100 Subject: [PATCH] Prepare React Pdf Preview Rollout with Split Test (#5746) Prepare React Pdf Preview Rollout with Split Test and disabled new Logs UI GitOrigin-RevId: 995b7ca3ed542e58596b9f9715adc93a64da597e --- .../web/app/src/Features/Helpers/NewLogsUI.js | 5 +++- .../src/Features/Project/ProjectController.js | 23 +++++++++++++++++-- .../unit/src/HelperFiles/NewLogsUITests.js | 5 ++++ .../src/Project/ProjectControllerTests.js | 3 +++ 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/services/web/app/src/Features/Helpers/NewLogsUI.js b/services/web/app/src/Features/Helpers/NewLogsUI.js index 62b91e53f2..c7736c179a 100644 --- a/services/web/app/src/Features/Helpers/NewLogsUI.js +++ b/services/web/app/src/Features/Helpers/NewLogsUI.js @@ -38,6 +38,7 @@ function _getVariantForPercentile(percentile) { } } +// eslint-disable-next-line no-unused-vars function getNewLogsUIVariantForUser(user) { const { _id: userId, alphaProgram: isAlphaUser } = user const isSaaS = Boolean(Settings.overleaf) @@ -56,5 +57,7 @@ function getNewLogsUIVariantForUser(user) { } module.exports = { - getNewLogsUIVariantForUser, + // We're disabling the split tests while rolling out the PDF Preview + // https://github.com/overleaf/internal/issues/5553 + getNewLogsUIVariantForUser: () => EXISTING_UI, } diff --git a/services/web/app/src/Features/Project/ProjectController.js b/services/web/app/src/Features/Project/ProjectController.js index 44295dbd19..e9ac35c36c 100644 --- a/services/web/app/src/Features/Project/ProjectController.js +++ b/services/web/app/src/Features/Project/ProjectController.js @@ -733,8 +733,27 @@ const ProjectController = { } ) }, + newPdfPreviewAssignment(cb) { + SplitTestV2Handler.getAssignmentForSession( + req.session, + 'react-pdf-preview-rollout', + (err, assignment) => { + cb(err, assignment) + } + ) + }, }, - (err, { project, user, subscription, isTokenMember, brandVariation }) => { + ( + err, + { + project, + user, + subscription, + isTokenMember, + brandVariation, + newPdfPreviewAssignment, + } + ) => { if (err != null) { OError.tag(err, 'error getting details for project page') return next(err) @@ -821,7 +840,7 @@ const ProjectController = { let showNewPdfPreview = shouldDisplayFeature( 'new_pdf_preview', - user.alphaProgram + newPdfPreviewAssignment.variant === 'react-pdf-preview' ) const showPdfDetach = shouldDisplayFeature( diff --git a/services/web/test/unit/src/HelperFiles/NewLogsUITests.js b/services/web/test/unit/src/HelperFiles/NewLogsUITests.js index e526862903..8e2d327bed 100644 --- a/services/web/test/unit/src/HelperFiles/NewLogsUITests.js +++ b/services/web/test/unit/src/HelperFiles/NewLogsUITests.js @@ -9,6 +9,11 @@ const MODULE_PATH = require('path').join( describe('NewLogsUI helper', function () { let NewLogsUI + before(function () { + // We're disabling the Logs UI split test while rolling out the PDF Preview + this.skip() + }) + function userIdFromTime(time) { return ObjectId.createFromTime(time).toString() } diff --git a/services/web/test/unit/src/Project/ProjectControllerTests.js b/services/web/test/unit/src/Project/ProjectControllerTests.js index c11ede8dc6..f0b4c57f7d 100644 --- a/services/web/test/unit/src/Project/ProjectControllerTests.js +++ b/services/web/test/unit/src/Project/ProjectControllerTests.js @@ -139,6 +139,9 @@ describe('ProjectController', function () { getAssignment: sinon.stub().resolves({ active: false }), assignInLocalsContext: sinon.stub().resolves(), }, + getAssignmentForSession: sinon + .stub() + .yields(null, { variant: 'variant' }), getAssignment: sinon.stub().yields(null, { active: false }), assignInLocalsContext: sinon.stub().yields(null), }