Skip to content

Commit f57bbe0

Browse files
talissoncostaclaude
andcommitted
test(e2e): add multivariate feature toggle and change request tests
Add E2E tests to cover multivariate feature bugs fixed in RTK Query migration: 1. Multivariate Feature Toggle Test: - Tests toggling MV features via edit modal works without 400 errors - Validates multivariate_feature_state_values transformation 2. Change Request with Multivariate Feature Test: - Tests creating change requests with MV features - Only runs when segment_change_requests feature is enabled - Validates the fix for incorrect multivariate format in CRs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 4409923 commit f57bbe0

1 file changed

Lines changed: 66 additions & 0 deletions

File tree

frontend/e2e/tests/flag-tests.ts

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,13 @@ import {
66
createRemoteConfig,
77
deleteFeature,
88
editRemoteConfig,
9+
getFlagsmith,
10+
gotoFeature,
11+
gotoFeatures,
912
log,
1013
login,
1114
parseTryItResults,
15+
setText,
1216
toggleFeature,
1317
waitForElementVisible,
1418
} from '../helpers.cafe';
@@ -84,4 +88,66 @@ export default async function () {
8488
log('Clear down features')
8589
await deleteFeature(1, 'header_size')
8690
await deleteFeature(0, 'header_enabled')
91+
92+
log('Create multivariate feature for toggle test')
93+
await createRemoteConfig(0, 'mv_toggle_test', 'control', 'MV toggle test', false, [
94+
{ value: 'variant_a', weight: 50 },
95+
{ value: 'variant_b', weight: 50 },
96+
])
97+
98+
log('Toggle multivariate feature via edit modal')
99+
await gotoFeatures()
100+
await click(byId('feature-switch-0-on'))
101+
await waitForElementVisible('#create-feature-modal')
102+
await click(byId('toggle-feature-button'))
103+
await click(byId('update-feature-btn'))
104+
await closeModal()
105+
await waitForElementVisible(byId('feature-switch-0-off'))
106+
107+
log('Multivariate toggle test passed')
108+
await deleteFeature(0, 'mv_toggle_test')
109+
110+
const flagsmith = await getFlagsmith()
111+
const hasChangeRequests = flagsmith.hasFeature('segment_change_requests')
112+
113+
if (hasChangeRequests) {
114+
log('Create multivariate feature for change request test')
115+
await createRemoteConfig(0, 'mv_cr_test', 'control', 'MV CR test', false, [
116+
{ value: 'variant_a', weight: 50 },
117+
{ value: 'variant_b', weight: 50 },
118+
])
119+
120+
log('Enable change requests')
121+
await click('#project-settings-link')
122+
await click('[data-test="js-change-request-approvals"]')
123+
await waitForElementVisible('[name="env-name"]')
124+
125+
await gotoFeatures()
126+
127+
log('Open multivariate feature for change request')
128+
await gotoFeature(0)
129+
await waitForElementVisible('#create-feature-modal')
130+
await click(byId('toggle-feature-button'))
131+
132+
log('Create change request with multivariate feature')
133+
await click(byId('update-feature-btn'))
134+
await waitForElementVisible('[name="title"]')
135+
await setText('[name="title"]', 'Test MV Change Request')
136+
await click('#create-cr-btn')
137+
await t.wait(1000)
138+
await closeModal()
139+
140+
log('Change request with multivariate feature created successfully')
141+
142+
log('Disable change requests')
143+
await click('#project-settings-link')
144+
await click('[data-test="js-change-request-approvals"]')
145+
146+
await gotoFeatures()
147+
await deleteFeature(0, 'mv_cr_test')
148+
149+
log('Change request test passed')
150+
} else {
151+
log('Skipping change request test - segment_change_requests feature not enabled')
152+
}
87153
}

0 commit comments

Comments
 (0)