Skip to content
34 changes: 19 additions & 15 deletions frontend/e2e/tests/segment-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ const segmentRules = [
]

export const testSegment1 = async (flagsmith: any) => {
const isCloneSegmentEnabled = await flagsmith.hasFeature('clone_segment')
log('Login')
await login(E2E_USER, PASSWORD)
await click('#project-select-1')
Expand All @@ -90,26 +91,14 @@ export const testSegment1 = async (flagsmith: any) => {
{ value: 'small', weight: 0 },
])

log('Segment age rules')
await gotoSegments()

log('Segment age rules')
// (=== 18 || === 19) && (> 17 || < 19) && (!=20) && (<=18) && (>=18)
// Rule 1- Age === 18 || Age === 19

await createSegment(0, '18_or_19', segmentRules)

log('Update segment')
await click(byId('segment-0-name'))
const lastRule = segmentRules[segmentRules.length - 1]
await setSegmentRule(segmentRules.length - 1, 0, lastRule.name, lastRule.operator, lastRule.value + 1)
await click(byId('update-segment'))
await closeModal()
await gotoSegments()
await click(byId('segment-0-name'))
await assertInputValue(byId(`rule-${segmentRules.length - 1}-value-0`), `${lastRule.value + 1}`)
await setSegmentRule(segmentRules.length - 1, 0, lastRule.name, lastRule.operator, lastRule.value)
await click(byId('update-segment'))
await closeModal()

log('Add segment trait for user')
await gotoTraits()
await createTrait(0, 'age', 18)
Expand Down Expand Up @@ -142,7 +131,6 @@ export const testSegment1 = async (flagsmith: any) => {
await waitAndRefresh()
await assertTextContent(byId('user-feature-value-0'), '"medium"')

const isCloneSegmentEnabled = await flagsmith.hasFeature('clone_segment')
if (isCloneSegmentEnabled) {
log('Clone segment')
await gotoSegments()
Expand All @@ -155,6 +143,22 @@ export const testSegment1 = async (flagsmith: any) => {
await deleteSegment(0, '18_or_19', !isCloneSegmentEnabled)
await gotoFeatures()
await deleteFeature(0, 'mv_flag')

log('Update segment')
await gotoSegments()
const lastRule = segmentRules[segmentRules.length - 1]
await createSegment(0, 'segment_to_update', [lastRule])
await closeModal()
await click(byId('segment-0-name'))
await setSegmentRule(0, 0, lastRule.name, lastRule.operator, lastRule.value + 1)
await click(byId('update-segment'))
await closeModal()
await gotoSegments()
await click(byId('segment-0-name'))
await assertInputValue(byId(`rule-${0}-value-0`), `${lastRule.value + 1}`)
await closeModal()
await deleteSegment(0, 'segment_to_update', !isCloneSegmentEnabled)
await waitAndRefresh()
}

export const testSegment2 = async () => {
Expand Down
Loading