@atlaskit/tmp-editor-statsig
v44.2.0
Published
Temp plugin to ease use of statsig feature flags until platform feature flags are available
Readme
@atlaskit/tmp-editor-statsig
Temp plugin to ease use of statsig feature flags until platform feature flags are available Temp plugin to ease use of statsig experiment until a platform solution is available.
Warning: This is a temporary solution and will be removed once there is a platform solution for statsig experiments.
Warning: This requires per product setup via the `setupEditorExperiments` api (products without this setup will receive the default value setup for experiments).
Usage
Experiments
All experiments must be registered in the `editorExperimentsConfig` object in the experiments.ts file.
Once they are registered, they can be accessed using the `editorExperiment` function from `@atlaskit/tmp-editor-statsig/experiments`.
Boolean experiments
import { editorExperiment } from '@atlaskit/editor-statsig-tmp/experiments';
if (editorExperiment('editor_inline_comments_on_inline_nodes', true)) {
// do something
} else {
// do something else
}Multivariate experiments
import { editorExperiment } from '@atlaskit/editor-statsig-tmp/experiments';
switch (true) {
case editorExperiment('editor_new_control_variants', 'variant-one'): {
// do something for variant one
return
}
case editorExperiment('editor_new_control_variants', 'variant-two'): {
// do something for variant two
return
}
case editorExperiment('editor_new_control_variants', 'variant-three'): {
// do something for variant three
return
}
}
`}
### Testing experiments
#### Atlaskit examples
Not yet supported.
#### Jest tests
##### Boolean experiments
```tsx
import { eeTest } from '@atlaskit/tmp-editor-statsig/editor-experiments-test-utils';
eeTest('example-boolean', {
true: () => {
expect(editorExperiment('example-boolean', true)).toBe(true);
},
false: () => {
expect(editorExperiment('example-boolean', false)).toBe(false);
},
});Multivariate experiments
import { eeTest } from '@atlaskit/tmp-editor-statsig/editor-experiments-test-utils';
eeTest('example-multivariate', {
one: () => {
expect(editorExperiment('example-boolean')).toBe('variant-one');
},
two: () => {
expect(editorExperiment('example-boolean')).toBe('variant-two');
},
three: () => {
expect(editorExperiment('example-boolean')).toBe('variant-three');
},
});Playwright tests
Editor Experiments are setup similar to platformFeatureFlags.
test.use({
adf: exampleAdf,
platformFeatureFlags: {
// ...
},
editorExperiments: {
'example-boolean': true,
'example-multivariate': 'variant',
},
});Configuration
import { setupEditorExperiments } from '@atlaskit/tmp-editor-statsig/experiments';
// Example confluence setup
setupEditorExperiments('confluence');
// Example dev util setup -- takes overrides as a second param (and otherwise defaults all experiments to their default values)
setupEditorExperiments('test', { 'example-boolean': true });
```tsx
## Usage
Detailed docs and example usage can be found
[here](https://atlaskit.atlassian.com/packages/editor/tmp-editor-feature-gate-js-client).