Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions frontend/e2e/helpers.cafe.ts
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,8 @@ export const setSegmentOverrideIndex = async (
await setText(byId(`sort-${index}`), `${newIndex}`)
}

export const assertInputValue = (selector: string, v: string) =>
t.expect(Selector(selector).value).eql(v)
export const assertTextContent = (selector: string, v: string) =>
t.expect(Selector(selector).textContent).eql(v)
export const assertTextContentContains = (selector: string, v: string) =>
Expand Down
110 changes: 64 additions & 46 deletions frontend/e2e/tests/segment-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,59 @@ import {
waitAndRefresh,
waitForElementVisible,
cloneSegment,
setSegmentRule,
assertInputValue,
} from '../helpers.cafe'
import { E2E_USER, PASSWORD } from '../config'

// Keep the last rule simple to facilitate update testing
const segmentRules = [
// rule 2 =18 || =17
{
name: 'age',
operator: 'EQUAL',
ors: [
{
name: 'age',
operator: 'EQUAL',
value: 17,
},
],
value: 18,
},
//rule 2 >17 or <10
{
name: 'age',
operator: 'GREATER_THAN',
ors: [
{
name: 'age',
operator: 'LESS_THAN',
value: 10,
},
],
value: 17,
},
// rule 3 !=20
{
name: 'age',
operator: 'NOT_EQUAL',
value: 20,
},
// Rule 4 <= 18
{
name: 'age',
operator: 'LESS_THAN_INCLUSIVE',
value: 18,
},
// Rule 5 >= 18
{
name: 'age',
operator: 'GREATER_THAN_INCLUSIVE',
value: 18,
},
]

export const testSegment1 = async (flagsmith: any) => {
log('Login')
await login(E2E_USER, PASSWORD)
Expand All @@ -45,52 +95,20 @@ export const testSegment1 = async (flagsmith: any) => {
// (=== 18 || === 19) && (> 17 || < 19) && (!=20) && (<=18) && (>=18)
// Rule 1- Age === 18 || Age === 19

await createSegment(0, '18_or_19', [
// rule 2 =18 || =17
{
name: 'age',
operator: 'EQUAL',
ors: [
{
name: 'age',
operator: 'EQUAL',
value: 17,
},
],
value: 18,
},
// rule 2 >17 or <10
{
name: 'age',
operator: 'GREATER_THAN',
ors: [
{
name: 'age',
operator: 'LESS_THAN',
value: 10,
},
],
value: 17,
},
// rule 3 !=20
{
name: 'age',
operator: 'NOT_EQUAL',
value: 20,
},
// Rule 4 <= 18
{
name: 'age',
operator: 'LESS_THAN_INCLUSIVE',
value: 18,
},
// Rule 5 >= 18
{
name: 'age',
operator: 'GREATER_THAN_INCLUSIVE',
value: 18,
},
])
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()
Expand Down
Loading