@@ -26,9 +26,59 @@ import {
2626 waitAndRefresh ,
2727 waitForElementVisible ,
2828 cloneSegment ,
29+ setSegmentRule ,
30+ assertInputValue ,
2931} from '../helpers.cafe'
3032import { 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+
3282export 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