11const { test, expect, chromium } = require ( '@playwright/test' ) ;
2+ const SELECTORS = require ( '../constants/selectors' ) ;
23
34const TEST_TASK_TEXT = 'Task to be completed' ;
45
@@ -26,9 +27,7 @@ function todoCompleteTests( testContext = test ) {
2627 await page . waitForLoadState ( 'networkidle' ) ;
2728
2829 // Clean up active tasks
29- const activeTodoItems = page . locator (
30- 'ul#todo-list > prpl-suggested-task li'
31- ) ;
30+ const activeTodoItems = page . locator ( SELECTORS . TODO_ITEM ) ;
3231
3332 while ( ( await activeTodoItems . count ( ) ) > 0 ) {
3433 const firstItem = activeTodoItems . first ( ) ;
@@ -49,7 +48,7 @@ function todoCompleteTests( testContext = test ) {
4948 await page . waitForTimeout ( 500 ) ;
5049
5150 const completedTodoItems = page . locator (
52- 'ul#todo-list-completed > prpl-suggested-task li'
51+ SELECTORS . TODO_COMPLETED_ITEM
5352 ) ;
5453
5554 while ( ( await completedTodoItems . count ( ) ) > 0 ) {
@@ -86,41 +85,34 @@ function todoCompleteTests( testContext = test ) {
8685 await page . waitForTimeout ( 500 ) ;
8786
8887 // Get the task selector
89- const todoItem = page . locator (
90- 'ul#todo-list > prpl-suggested-task li'
91- ) ;
88+ const todoItem = page . locator ( SELECTORS . TODO_ITEM ) ;
9289 const taskId = await todoItem . getAttribute ( 'data-task-id' ) ;
9390 taskSelector = `li[data-task-id="${ taskId } "]` ;
9491
95- // Verify task was created
92+ // Complete the task
9693 const todoItemElement = page . locator (
97- `ul#todo-list ${ taskSelector } `
94+ `${ SELECTORS . TODO_LIST } ${ taskSelector } `
9895 ) ;
99- await expect (
100- todoItemElement . locator ( 'h3 > label > span' )
101- ) . toHaveText ( TEST_TASK_TEXT ) ;
102-
103- // Click the checkbox to complete the task
10496 await todoItemElement
10597 . locator ( '.prpl-suggested-task-checkbox' )
10698 . click ( ) ;
10799 await page . waitForTimeout ( 1000 ) ;
108100
109- // Verify task disappeared from active list
101+ // Verify task is not in active list
110102 await expect (
111- page . locator ( `ul#todo-list ${ taskSelector } ` )
103+ page . locator ( `${ SELECTORS . TODO_LIST } ${ taskSelector } ` )
112104 ) . toHaveCount ( 0 ) ;
113105
114- // Open completed tasks if not already open
106+ // Open completed tasks
115107 await page . locator ( 'details#todo-list-completed-details' ) . click ( ) ;
116108
117- // Verify task appears in completed list
109+ // Verify task is still in completed list with correct state
118110 const completedTask = page . locator (
119- `ul#todo-list-completed ${ taskSelector } `
111+ `${ SELECTORS . TODO_LIST_COMPLETED } ${ taskSelector } `
120112 ) ;
121113 await expect ( completedTask ) . toBeVisible ( ) ;
122114 await expect (
123- completedTask . locator ( 'h3 > label > span' )
115+ completedTask . locator ( SELECTORS . RR_ITEM_TEXT )
124116 ) . toHaveText ( TEST_TASK_TEXT ) ;
125117 await expect (
126118 completedTask . locator ( '.prpl-suggested-task-checkbox' )
@@ -142,15 +134,13 @@ function todoCompleteTests( testContext = test ) {
142134 await page . waitForTimeout ( 500 ) ;
143135
144136 // Get the task selector
145- const todoItem = page . locator (
146- 'ul#todo-list > prpl-suggested-task li'
147- ) ;
137+ const todoItem = page . locator ( SELECTORS . TODO_ITEM ) ;
148138 const taskId = await todoItem . getAttribute ( 'data-task-id' ) ;
149139 taskSelector = `li[data-task-id="${ taskId } "]` ;
150140
151141 // Complete the task
152142 const todoItemElement = page . locator (
153- `ul#todo-list ${ taskSelector } `
143+ `${ SELECTORS . TODO_LIST } ${ taskSelector } `
154144 ) ;
155145 await todoItemElement
156146 . locator ( '.prpl-suggested-task-checkbox' )
@@ -159,7 +149,7 @@ function todoCompleteTests( testContext = test ) {
159149
160150 // Verify task is not in active list
161151 await expect (
162- page . locator ( `ul#todo-list ${ taskSelector } ` )
152+ page . locator ( `${ SELECTORS . TODO_LIST } ${ taskSelector } ` )
163153 ) . toHaveCount ( 0 ) ;
164154
165155 // Open completed tasks
@@ -169,11 +159,11 @@ function todoCompleteTests( testContext = test ) {
169159
170160 // Verify task is still in completed list with correct state
171161 const completedTask = page . locator (
172- `ul#todo-list-completed ${ taskSelector } `
162+ `${ SELECTORS . TODO_LIST_COMPLETED } ${ taskSelector } `
173163 ) ;
174164 await expect ( completedTask ) . toBeVisible ( ) ;
175165 await expect (
176- completedTask . locator ( 'h3 > label > span' )
166+ completedTask . locator ( SELECTORS . RR_ITEM_TEXT )
177167 ) . toHaveText ( TEST_TASK_TEXT ) ;
178168 await expect (
179169 completedTask . locator ( '.prpl-suggested-task-checkbox' )
0 commit comments