Skip to content

Conversation

xdubx
Copy link
Contributor

@xdubx xdubx commented Oct 9, 2025

TaskWPB-19936 [Web/Qa] Write the AppLock regression tests in Playwright

Checklist

  • mentions the JIRA issue in the PR name (Ex. [WPB-XXXX])
  • PR has been self reviewed by the author;
  • Hard-to-understand areas of the code have been commented;
  • If it is a core feature, unit tests have been added;

Copy link
Contributor

github-actions bot commented Oct 9, 2025

🔗 Download Full Report Artifact

🧪 Playwright Test Summary

  • Passed: 7
  • Failed: 6
  • Skipped: 0
  • 🔁 Flaky: 1
  • 📊 Total: 14
  • Total Runtime: 986.3s (~ 16 min 26 sec)

Failed Tests:

❌ Channels Management (tags: TC-8752, crit-flow-web)

Location: specs/CriticalFlow/channelsManagement-TC-8752.spec.ts:36
Duration: 75856ms

Errors:

TimeoutError: locator.waitFor: Timeout 20000ms exceeded.
Call log:
  - waiting for locator('[data-uie-name="item-message"] .message-body:not(:has(p.text-foreground)):has(.text)').last() to be visible


   at pageManager/webapp/pages/conversation.page.ts:160

  158 |     if (waitForVisibility) {
  159 |       // Wait for the last message to be visible
> 160 |       await this.messages.last().waitFor({state: 'visible', timeout: 20_000});
      |                                  ^
  161 |     }
  162 |
  163 |     // Then get all matching elements
    at ConversationPage.isMessageVisible (/home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/pageManager/webapp/pages/conversation.page.ts:160:34)
    at sendTextMessageToConversation (/home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/utils/userActions.ts:85:37)
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/channelsManagement-TC-8752.spec.ts:158:5
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/channelsManagement-TC-8752.spec.ts:157:3
❌ Planning group call with sending various messages during call (tags: TC-8632, crit-flow-web)

Location: specs/CriticalFlow/groupCalls-TC-8632.spec.ts:37
Duration: 23440ms

Errors:

Error: expect(received).toBeFalsy()

Received: true

  125 |     await test.step('Member unmutes themselves', async () => {
  126 |       await memberCalling.unmuteSelfInFullScreen();
> 127 |       expect(await memberCalling.isSelfUserMutedInFullScreen()).toBeFalsy();
      |                                                                 ^
  128 |     });
  129 |
  130 |     await test.step('Validation: Owner sees member is unmuted', async () => {
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/groupCalls-TC-8632.spec.ts:127:65
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/groupCalls-TC-8632.spec.ts:125:5
❌ Group Video call (tags: TC-8637, crit-flow-web)

Location: specs/CriticalFlow/groupVideoCall-TC-8637.spec.ts:39
Duration: 53565ms

Errors:

TimeoutError: locator.click: Timeout 20000ms exceeded.
Call log:
  - waiting for locator('[data-uie-name="item-call"]').locator('[data-uie-name="do-call-controls-call-accept"]')


   at pageManager/webapp/pages/calling.page.ts:66

  64 |
  65 |   async clickAcceptCallButton() {
> 66 |     await this.acceptCallButton.click();
     |                                 ^
  67 |   }
  68 |
  69 |   async clickToggleVideoButton() {
    at CallingPage.clickAcceptCallButton (/home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/pageManager/webapp/pages/calling.page.ts:66:33)
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/groupVideoCall-TC-8637.spec.ts:147:34
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/groupVideoCall-TC-8637.spec.ts:145:16
❌ New person joins team and setups up device (tags: TC-8635, crit-flow-web)

Location: specs/CriticalFlow/joinTeam-TC-8635.spec.ts:37
Duration: 49131ms

Errors:

Error: expect(locator).toBeVisible() failed

Locator: getByText('@Kathlyn Abbott')
Expected: visible
Error: strict mode violation: getByText('@Kathlyn Abbott') resolved to 2 elements:
    1) <span data-uie-name="secondary-line" class="conversation-list-cell-description conversation-list-cell-description--active">Eldred ConnellyKuvalis: @Kathlyn Abbott</span> aka getByRole('button', { name: 'Open profile of Crits' })
    2) <span role="button" data-uie-name="label-self-mention" class="message-mention self-mention">…</span> aka getByTestId('label-self-mention')

Call log:
  - Expect "toBeVisible" with timeout 10000ms
  - waiting for getByText('@Kathlyn Abbott')


  151 |
  152 |     await test.step('A sees the mention in the chat', async () => {
> 153 |       await expect(pages.conversation().page.getByText(`@${memberA.fullName}`)).toBeVisible();
      |                                                                                 ^
  154 |     });
  155 |   },
  156 | );
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/joinTeam-TC-8635.spec.ts:153:81
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/joinTeam-TC-8635.spec.ts:152:16
❌ Messages in Channels (tags: TC-8753, crit-flow-web)

Location: specs/CriticalFlow/messagesInChannels-TC-8753.spec.ts:44
Duration: 44930ms

Errors:

TimeoutError: locator.waitFor: Timeout 20000ms exceeded.
Call log:
  - waiting for locator('[data-uie-name="item-message"] [data-uie-name="message-reactions"] button[data-uie-name="emoji-pill"][aria-label="1 reaction, react with +1 emoji"]').first() to be visible


   at pageManager/webapp/pages/conversation.page.ts:210

  208 |
  209 |     // Wait for at least one matching element to appear (optional timeout can be set)
> 210 |     await plusOneReactionIcon.first().waitFor({state: 'visible'});
      |                                       ^
  211 |
  212 |     return await plusOneReactionIcon.isVisible();
  213 |   }
    at ConversationPage.isPlusOneReactionVisible (/home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/pageManager/webapp/pages/conversation.page.ts:210:39)
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/messagesInChannels-TC-8753.spec.ts:141:46
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/messagesInChannels-TC-8753.spec.ts:137:5
❌ Messages in Groups (tags: TC-8751, crit-flow-web)

Location: specs/CriticalFlow/messagesInGroups-TC-8751.spec.ts:42
Duration: 43831ms

Errors:

TimeoutError: locator.waitFor: Timeout 20000ms exceeded.
Call log:
  - waiting for locator('[data-uie-name="item-message"] [data-uie-name="message-reactions"] button[data-uie-name="emoji-pill"][aria-label="1 reaction, react with +1 emoji"]').first() to be visible


   at pageManager/webapp/pages/conversation.page.ts:210

  208 |
  209 |     // Wait for at least one matching element to appear (optional timeout can be set)
> 210 |     await plusOneReactionIcon.first().waitFor({state: 'visible'});
      |                                       ^
  211 |
  212 |     return await plusOneReactionIcon.isVisible();
  213 |   }
    at ConversationPage.isPlusOneReactionVisible (/home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/pageManager/webapp/pages/conversation.page.ts:210:39)
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/messagesInGroups-TC-8751.spec.ts:133:46
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/messagesInGroups-TC-8751.spec.ts:129:5

Flaky Tests:

⚠️ Setting up new device with a backup (tags: TC-8634, crit-flow-web)

Location: specs/CriticalFlow/backupRestoration-TC-8634.spec.ts:35

Attempt 1
Result: ❌ Failed
Duration: 40252ms

Errors:

Error: locator.waitFor: Test ended.
Call log:
  - waiting for locator('[data-uie-name="item-message"] .message-body:not(:has(p.text-foreground)):has(.text)').last() to be visible


   at pageManager/webapp/pages/conversation.page.ts:160

  158 |     if (waitForVisibility) {
  159 |       // Wait for the last message to be visible
> 160 |       await this.messages.last().waitFor({state: 'visible', timeout: 20_000});
      |                                  ^
  161 |     }
  162 |
  163 |     // Then get all matching elements
    at ConversationPage.isMessageVisible (/home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/pageManager/webapp/pages/conversation.page.ts:160:34)
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/backupRestoration-TC-8634.spec.ts:87:33
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/backupRestoration-TC-8634.spec.ts:72:3

Attempt 2
Result: ✅ Passed
Duration: 41455ms

@xdubx xdubx changed the title test(e2e): implement account settings regression tests [WPB-19936] test(e2e): implement app lock regression tests [WPB-19936] Oct 14, 2025
@xdubx xdubx marked this pull request as ready for review October 14, 2025 16:19
@xdubx xdubx requested review from a team and otto-the-bot as code owners October 14, 2025 16:19
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants