Skip to content

Commit 423421c

Browse files
authored
chore: add e2e update segment test (#5904)
1 parent ad90f59 commit 423421c

File tree

2 files changed

+66
-46
lines changed

2 files changed

+66
-46
lines changed

frontend/e2e/helpers.cafe.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,8 @@ export const setSegmentOverrideIndex = async (
313313
await setText(byId(`sort-${index}`), `${newIndex}`)
314314
}
315315

316+
export const assertInputValue = (selector: string, v: string) =>
317+
t.expect(Selector(selector).value).eql(v)
316318
export const assertTextContent = (selector: string, v: string) =>
317319
t.expect(Selector(selector).textContent).eql(v)
318320
export const assertTextContentContains = (selector: string, v: string) =>

frontend/e2e/tests/segment-test.ts

Lines changed: 64 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,59 @@ import {
2626
waitAndRefresh,
2727
waitForElementVisible,
2828
cloneSegment,
29+
setSegmentRule,
30+
assertInputValue,
2931
} from '../helpers.cafe'
3032
import { E2E_USER, PASSWORD } from '../config'
3133

34+
// Keep the last rule simple to facilitate update testing
35+
const segmentRules = [
36+
// rule 2 =18 || =17
37+
{
38+
name: 'age',
39+
operator: 'EQUAL',
40+
ors: [
41+
{
42+
name: 'age',
43+
operator: 'EQUAL',
44+
value: 17,
45+
},
46+
],
47+
value: 18,
48+
},
49+
//rule 2 >17 or <10
50+
{
51+
name: 'age',
52+
operator: 'GREATER_THAN',
53+
ors: [
54+
{
55+
name: 'age',
56+
operator: 'LESS_THAN',
57+
value: 10,
58+
},
59+
],
60+
value: 17,
61+
},
62+
// rule 3 !=20
63+
{
64+
name: 'age',
65+
operator: 'NOT_EQUAL',
66+
value: 20,
67+
},
68+
// Rule 4 <= 18
69+
{
70+
name: 'age',
71+
operator: 'LESS_THAN_INCLUSIVE',
72+
value: 18,
73+
},
74+
// Rule 5 >= 18
75+
{
76+
name: 'age',
77+
operator: 'GREATER_THAN_INCLUSIVE',
78+
value: 18,
79+
},
80+
]
81+
3282
export const testSegment1 = async (flagsmith: any) => {
3383
log('Login')
3484
await login(E2E_USER, PASSWORD)
@@ -45,52 +95,20 @@ export const testSegment1 = async (flagsmith: any) => {
4595
// (=== 18 || === 19) && (> 17 || < 19) && (!=20) && (<=18) && (>=18)
4696
// Rule 1- Age === 18 || Age === 19
4797

48-
await createSegment(0, '18_or_19', [
49-
// rule 2 =18 || =17
50-
{
51-
name: 'age',
52-
operator: 'EQUAL',
53-
ors: [
54-
{
55-
name: 'age',
56-
operator: 'EQUAL',
57-
value: 17,
58-
},
59-
],
60-
value: 18,
61-
},
62-
// rule 2 >17 or <10
63-
{
64-
name: 'age',
65-
operator: 'GREATER_THAN',
66-
ors: [
67-
{
68-
name: 'age',
69-
operator: 'LESS_THAN',
70-
value: 10,
71-
},
72-
],
73-
value: 17,
74-
},
75-
// rule 3 !=20
76-
{
77-
name: 'age',
78-
operator: 'NOT_EQUAL',
79-
value: 20,
80-
},
81-
// Rule 4 <= 18
82-
{
83-
name: 'age',
84-
operator: 'LESS_THAN_INCLUSIVE',
85-
value: 18,
86-
},
87-
// Rule 5 >= 18
88-
{
89-
name: 'age',
90-
operator: 'GREATER_THAN_INCLUSIVE',
91-
value: 18,
92-
},
93-
])
98+
await createSegment(0, '18_or_19', segmentRules)
99+
100+
log('Update segment')
101+
await click(byId('segment-0-name'))
102+
const lastRule = segmentRules[segmentRules.length - 1]
103+
await setSegmentRule(segmentRules.length - 1, 0, lastRule.name, lastRule.operator, lastRule.value + 1)
104+
await click(byId('update-segment'))
105+
await closeModal()
106+
await gotoSegments()
107+
await click(byId('segment-0-name'))
108+
await assertInputValue(byId(`rule-${segmentRules.length - 1}-value-0`), `${lastRule.value + 1}`)
109+
await setSegmentRule(segmentRules.length - 1, 0, lastRule.name, lastRule.operator, lastRule.value)
110+
await click(byId('update-segment'))
111+
await closeModal()
94112

95113
log('Add segment trait for user')
96114
await gotoTraits()

0 commit comments

Comments
 (0)