0.2.0 • Published 4 years ago

@guardian/ab-rendering v0.2.0

Weekly downloads
23
License
Apache-2.0
Repository
github
Last release
4 years ago

ab-rendering

Client-side ab testing framework (broken out from Frontend)

API

Initialise AB Tests

import { AB } from '@guardian/ab-rendering';

// See config object values below
const coreConfig = {};
const ophanConfig = {};

const abTests = new AB(config);

// Provides access to:
// test being a single AB tests
// [tests] being an array of ab tests
abTests.runnableTest(test);
abTests.firstRunnableTest([tests]);
abTests.isUserInVariant(test, variantId);

// [tests] being an array of *runnable* ab tests
abTest.registerCompleteEvents([tests]);
abTest.registerImpressionEvents([tests]);
abTest.trackABTests([tests]);

coreConfig

ConfigTypeExampleNote
mvtMaxValuenumber10000MVT % is calculated from 0 to mvtMaxValue
mvtCookieIdnumbergetCookie('mvtCookie')The user's MVT ID to calculate what tests and variants they fall into
pageIsSensitivebooleanguardian.config.page.isSensitiveSensitive pages must have explicit settings in AB tests
abTestSwitchesRecord<string, boolean>{'TestOne': true}An object containing all of the boolean values of abTestSwitches, in Frontend from page.config.switches.abTests
forcedTestVariantOptional: { testId: ABTest'id'; variant: Variant }In Frontend this might be set by the URL override, but otherwise can be used to force a user into a test and variant at init time
forcedTestExceptionOptional: ABTest'id'Can be used to force a user out of a test (in Frontend, again with url override)
arrayOfTestObjectsABTest[]Pass all tests definitions into the config
ServerSideTetsServerSideTestsServerSideTets are accessed via window config in Frontend
errorReporterErrorReporterFuncPass an error reporter, probably Sentry
ophanRecordOphanRecordFunctionProbably Ophan's 'record' function

TODO