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 |
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) 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) 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) 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) 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) 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)