TestCafe Test Summary

Summary


Start Time: Tue Apr 07 2026 19:49:42 GMT+0000 (Coordinated Universal Time)

Browsers: Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224

Duration: 35s

Tests Failed: 6 out of 17

Tests Skipped: 0


# Fixture Test Name Browsers Duration Result
1 Central Operations - Comprehensive Tests Home page renders correctly Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 1s passed
2 Central Operations - Comprehensive Tests Can navigate to task board via hero button Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 1s passed
3 Central Operations - Comprehensive Tests Can navigate to task board via link Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 1s passed
4 Central Operations - Comprehensive Tests Task board displays all 6 columns with correct titles Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 1s passed
5 Central Operations - Comprehensive Tests Task cards display required information Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 1s passed
6 Central Operations - Comprehensive Tests Task detail modal opens and displays full information Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 2s passed
7 Central Operations - Comprehensive Tests Can create a new task Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 2s failed
8 Central Operations - Comprehensive Tests Can edit an existing task Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 2s failed
9 Central Operations - Comprehensive Tests Drag and drop updates task status Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 0s failed
10 Central Operations - Comprehensive Tests Comments section exists in task detail modal Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 1s passed
11 Central Operations - Comprehensive Tests Can add a comment to a task Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 14s failed
12 Central Operations - Comprehensive Tests Comment form clears after submission Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 3s passed
13 Central Operations - Comprehensive Tests Comments are ordered newest first Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 1s passed
14 Central Operations - Comprehensive Tests Can edit own comment Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 1s passed
15 Central Operations - Comprehensive Tests Can delete a comment Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 1s passed
16 Central Operations - Comprehensive Tests Form validation prevents empty title Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 2s failed
17 Central Operations - Comprehensive Tests Responsive layout: columns stack on narrow viewport Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224 1s failed

Error Details

7. Central Operations - Comprehensive Tests - Can create a new task

TypeError: t.selectOption is not a function

Browser: Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224

   149 |    await t.expect(modal.visible).ok('Create task modal should open');
   150 |
   151 |    // Fill form
   152 |    await t.typeText('#taskTitle', 'Test Task from TestCafe');
   153 |    await t.typeText('#taskDescription', 'This is a test task created via automated test');
 > 154 |    await t.selectOption('#taskStatus', 'in_progress');
   155 |    await t.typeText('#taskTags', 'test, automated');
   156 |
   157 |    await t.click('button[onclick="saveTask()"]');
   158 |
   159 |    // Wait for modal to close and board to update

   at <anonymous> (/tests/central-operations.test.js:154:13)
   at asyncGeneratorStep (/tests/central-operations.test.js:1:40)
   at _next (/tests/central-operations.test.js:1:40) 

8. Central Operations - Comprehensive Tests - Can edit an existing task

TypeError: t.selectOption is not a function

Browser: Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224

   180 |    await t.expect(editModal.visible).ok('Edit modal should open');
   181 |
   182 |    // Modify title
   183 |    const titleInput = Selector('#taskTitle');
   184 |    await t.expect(titleInput.value).eql('Draft project plan', 'Original title should be populated');
 > 185 |    await t.selectOption('#taskStatus', 'in_qa');
   186 |
   187 |    await t.click('button[onclick="saveTask()"]');
   188 |
   189 |    await t.expect(editModal.visible).notOk('Edit modal should close');
   190 |

   at <anonymous> (/tests/central-operations.test.js:185:13)
   at asyncGeneratorStep (/tests/central-operations.test.js:1:40)
   at _next (/tests/central-operations.test.js:1:40) 

9. Central Operations - Comprehensive Tests - Drag and drop updates task status

The "dragOffsetX" argument is expected to be an integer, but it was function.

Browser: Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224

   199 |
   200 |    const sourceCard = board.taskCard(1);
   201 |    const targetColumn = board.column('in_progress');
   202 |
   203 |    // Drag from backlog to in_progress
 > 204 |    await t.drag(sourceCard, targetColumn);
   205 |
   206 |    // Wait a moment for update
   207 |    await t.wait(500);
   208 |
   209 |    // Verify card moved (check count changed)

   at <anonymous> (/tests/central-operations.test.js:204:13)
   at asyncGeneratorStep (/tests/central-operations.test.js:1:40)
   at _next (/tests/central-operations.test.js:1:40) 

11. Central Operations - Comprehensive Tests - Can add a comment to a task

AssertionError: Comment should contain content: expected 'TestUser 4/7/2026, 6:16:48 PM\n✏️ 🗑️\nHello from deployment test\n(edited)' to include 'This is a test comment'

Browser: Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224

   239 |    await t.click('button[onclick*="addComment"]');
   240 |
   241 |    // Verify comment appears in list
   242 |    await t.expect(Selector('#commentsList .card').count).gt(0, 'At least one comment should exist');
   243 |    await t.expect(Selector('#commentsList').innerText).contains('TestUser', 'Comment should contain author name');
 > 244 |    await t.expect(Selector('#commentsList').innerText).contains('This is a test comment', 'Comment should contain content');
   245 |});
   246 |
   247 |test('Comment form clears after submission', async t => {
   248 |    const board = new TaskBoardPage();
   249 |    await board.navigate();

   at <anonymous> (/tests/central-operations.test.js:244:57)
   at asyncGeneratorStep (/tests/central-operations.test.js:1:40)
   at _next (/tests/central-operations.test.js:1:40) 

16. Central Operations - Comprehensive Tests - Form validation prevents empty title

A native alert dialog was invoked on page "https://centralops.dumas.ddns.net/tasks", but no handler was set for it. Use the "setNativeDialogHandler" function to introduce a handler function for native dialogs.

Browser: Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224

   314 |
   315 |    // Leave title empty, try to save
   316 |    await t.typeText('#taskDescription', 'Test description');
   317 |    // The required attribute should prevent submission, but we can also verify client-side
   318 |    // Since Bootstrap modal doesn't auto-validate, we rely on HTML5 required
 > 319 |    await t.click('button[onclick="saveTask()"]');
   320 |
   321 |    // Modal should stay open (validation error, though not explicitly shown)
   322 |    await t.expect(Selector('#taskModal .modal-dialog').visible).ok('Modal should remain open after empty title attempt');
   323 |
   324 |    // Close modal

   at <anonymous> (/tests/central-operations.test.js:319:13)
   at asyncGeneratorStep (/tests/central-operations.test.js:1:40)
   at _next (/tests/central-operations.test.js:1:40) 

17. Central Operations - Comprehensive Tests - Responsive layout: columns stack on narrow viewport

TypeError: t.except is not a function

Browser: Chrome 143.0.0.0 / Alpine Linux 3.24.0_alpha20251224

   331 |    await board.navigate();
   332 |
   333 |    // On mobile, columns should be stacked vertically (flex-direction: column)
   334 |    const boardElement = Selector('#board');
   335 |    const computedStyle = await boardElement.getStyleProperty('flex-direction');
 > 336 |    await t.except(computedStyle).eql('column', 'Board should have column direction on mobile');
   337 |});
   338 |

   at <anonymous> (/tests/central-operations.test.js:336:13)
   at asyncGeneratorStep (/tests/central-operations.test.js:1:40)
   at _next (/tests/central-operations.test.js:1:40)