Slide 12
Slide 12 text
'use strict';
exports.invoke = (event, context, callback) => {
const request = event.Records[0].cf.request
const headers = request.headers
const experimentA = 'loadCriticalCSSFirstTest=Control'
const experimentB = 'loadCriticalCSSFirstTest=Variant'
const experimentActionA = '/index.html'
const experimentActionB = '/jira123.index.html'
let experimentUri
if (headers.cookie) {
for (let i = 0; i < headers.cookie.length; i++) {
if (headers.cookie[i].value.indexOf(experimentA) >= 0) {
experimentUri = experimentActionA
break
} else if (headers.cookie[i].value.indexOf(experimentB) >= 0)
{
experimentUri = pathExperimentB
break
}
}
}
if (!experimentUri) {
if (Math.random() < 0.5) {
experimentUri = experimentActionA
} else {
experimentUri = experimentActionB
}
}
request.uri = experimentUri
callback(null, request)
}