Rather than do T204613, it has been proposed instead that we make it possible for a user to turn on page issues via a special URI parameter.
This should be a trivial change to pageIssues.js to check a query string parameter and turn on the new treatment if necessary:
newTreatmentEnabled = abTest.isB() || mw.util.getParamValue( 'minerva-issues' ) === 'b';
EventLogging should not be turned on via this debug mode so it should also
e.g.
function isLoggingRequired( pageIssues ) { // No logging necessary when the A/B test is disabled (control group). return abTest.isEnabled() && pageIssues.length && !mw.util.getParamValue( 'minerva-issues' ); }
Acceptance criteria
- New treatment can be opted in via a query string parameter
- Users using the debug flag are excluded from the AB test event logging
- The treatment would persist for the entire page session
- New treatment does not persist across pages or user sessions (ie. it only applies if the query string features the parameter)
QA steps
- Ask a developer to enable the A/B test
Find a page with the old treatment
by appending ?minerva-issues=b at the end of any URL (query string), it should be possible to see the new treatment 100% of the time (open new tabs to attempt to rebucket yourself)
e.g. https://reading-web-staging.wmflabs.org/w/index.php?title=Pharmacovigilance&mobileaction=toggle_view_mobile&minerva-issues=b
No events should be logged relating to PageIssues schema.
- Verify if no query string parameter things events are fired and 50% of the time you get the old treament
Remove the query string parameter from the URI. 50% of the time you should see the old treatment and events to PageIssues and ReadingDepth should be present.
- Ask a developer to disable the A/B test on Staging.
by appending ?minerva-issues=b at the end of any URL (query string), it should be possible to see the new treatment
No events should be logged relating to PageIssues schema.