Merge pull request #16307 from overleaf/ab-split-tests-never-throw

[web] Guarantee split test assignments can never throw and cleanup boilterplate error handling

GitOrigin-RevId: ab50abde6e0632c5a9625b5c3d3e98f3383cc56c
This commit is contained in:
Alexandre Bourdin
2024-01-19 09:05:14 +00:00
committed by Copybot
parent 29d41497ef
commit 3b9eb4e8aa
5 changed files with 149 additions and 317 deletions
@@ -74,23 +74,16 @@ async function settingsPage(req, res) {
// if not already enabled, use a split test to determine whether to offer personal access tokens
let optionalPersonalAccessToken = false
if (!showPersonalAccessToken) {
try {
const { variant } = await SplitTestHandler.promises.getAssignment(
req,
res,
'personal-access-token'
)
optionalPersonalAccessToken = variant === 'enabled' // `?personal-access-token=enabled`
} catch (error) {
logger.error(
{ err: error },
'Failed to get personal-access-token split test assignment'
)
}
const { variant } = await SplitTestHandler.promises.getAssignment(
req,
res,
'personal-access-token'
)
optionalPersonalAccessToken = variant === 'enabled' // `?personal-access-token=enabled`
}
// eslint-disable-next-line no-unused-vars -- getAssignment sets res.locals, which will pass to the splitTest context
const writefullSplitTest = await SplitTestHandler.promises.getAssignment(
// getAssignment sets res.locals, which will pass to the splitTest context
await SplitTestHandler.promises.getAssignment(
req,
res,
'writefull-integration'