Skip to content

Conversation

@emil-wire
Copy link
Contributor

@emil-wire emil-wire commented Nov 14, 2025

TaskWPB-18861 [Web] add filter for unread messages, mentions and replies

user selectable conversation filters + tabs

Bildschirmfoto 2025-11-14 um 01 25 03 Bildschirmfoto 2025-11-14 um 01 25 10 Bildschirmfoto 2025-11-14 um 01 25 34

This PR is a rewrite of a previous PR that didn't work out so well. Using the feature flag FEATURE_ENABLE_ADVANCED_FILTERS you can turn this on and test it.

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;

@codecov
Copy link

codecov bot commented Nov 14, 2025

Codecov Report

❌ Patch coverage is 49.32432% with 75 lines in your changes missing coverage. Please review.
✅ Project coverage is 43.44%. Comparing base (b95b233) to head (ecabb3e).

Additional details and impacted files
@@            Coverage Diff             @@
##              dev   #19769      +/-   ##
==========================================
- Coverage   43.45%   43.44%   -0.01%     
==========================================
  Files        1294     1294              
  Lines       32542    32618      +76     
  Branches     7229     7244      +15     
==========================================
+ Hits        14140    14172      +32     
- Misses      16689    16728      +39     
- Partials     1713     1718       +5     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 14, 2025

🔗 Download Full Report Artifact

🧪 Playwright Test Summary

  • Passed: 12
  • Failed: 91
  • Skipped: 5
  • 🔁 Flaky: 0
  • 📊 Total: 108
  • Total Runtime: 732.7s (~ 12 min 13 sec)
specs/2FA-for-TeamsSpecs/2fa-for-teams.spec.ts (❌ 2 failed, ⚠️ 0 flaky)
  • ❌ f2a for teams > 2FA Code (tags: TC-8749, regression)
  • ❌ f2a for teams > I want to verify that verification code is not required after login if 2FA has been disabled (tags: TC-8749, regression)
specs/Accessibility/Accessibility.spec.ts (❌ 3 failed, ⚠️ 0 flaky)
  • ❌ Accessibility > I want to see typing indicator in group conversation (tags: TC-46, regression)
  • ❌ Accessibility > I want to see collapsed view when app is narrow (tags: TC-48, regression)
  • ❌ Accessibility > I should not lose a drafted message when switching between conversations in collapsed view (tags: TC-51, regression)
specs/AccountSettingsSpecs/accountSettings.spec.ts (❌ 8 failed, ⚠️ 0 flaky)
  • ❌ account settings > Edit Profile (tags: TC-8770, regression)
  • ❌ account settings > I should not be able to change my email to already taken email (tags: TC-58, regression)
  • ❌ account settings > I should not be able to change my email to an invalid email address (tags: TC-59, regression)
  • ❌ account settings > I should not be able to change email of user managed by SCIM (tags: TC-60, regression)
  • ❌ account settings > Verify links to manage and create teams are shown when logged in as team owner (tags: TC-1723, regression)
  • ❌ account settings > Verify link to manage a team is not shown when logged in as team member or normal use (tags: TC-1723, regression)
  • ❌ account settings > Verify I can retrieve calling logs (tags: TC-1725, regression)
  • ❌ account settings > I want to see the Full Name wherever my name gets displayed (tags: TC-1948, regression)
specs/AppLock/AppLock.spec.ts (❌ 5 failed, ⚠️ 0 flaky)
  • ❌ AppLock > I want to see app lock setup modal on login after app lock has been enforced for the team (tags: TC-2744, TC-2740, regression)
  • ❌ AppLock > Web: App should not lock if I switch back to webapp tab in time (during inactivity timeout) (tags: TC-2752, TC-2753, regression)
  • ❌ AppLock > Web: I want to unlock the app with passphrase after login (tags: TC-2754, TC-2755, TC-2758, TC-2763, regression)
  • ❌ AppLock > I should not be able to switch off app lock if it is enforced for the team (tags: TC-2770, TC-2767, regression)
  • ❌ AppLock > I want to switch off app lock (tags: TC-2771, TC-2772, regression)
specs/ArchiveSpecs/archive.spec.ts (❌ 4 failed, ⚠️ 0 flaky)
  • ❌ Accessibility > I want to archive and unarchive conversation via conversation list (tags: TC-97, regression)
  • ❌ Accessibility > Verify the conversation is not unarchived when there are new messages in this conversation (tags: TC-99, regression)
  • ❌ Accessibility > I want to archive the group conversation from conversation details (tags: TC-104, regression)
  • ❌ Accessibility > I want to archive the 1on1 conversation from conversation details (tags: TC-105, regression)
specs/Authentication/authentication.spec.ts (❌ 7 failed, ⚠️ 0 flaky)
  • ❌ Authentication > Verify sign in error appearance in case of suspended team account (tags: TC-3468, regression)
  • ❌ Authentication > Verify current browser is set as temporary device (tags: TC-3460, regression)
  • ❌ Authentication > Verify sign in error appearance in case of wrong credentials (tags: TC-3465, regression)
  • ❌ Authentication > I want to keep my history after refreshing the page on permanent device (tags: TC-3472, regression)
  • ❌ Authentication > I want to keep my history after refreshing the page on temporary device (tags: TC-3473, regression)
  • ❌ Authentication > Make sure user does not see data of user of previous sessions on same browser (tags: TC-1311, regression)
  • ❌ Authentication > Verify session expired info is visible on login page (tags: TC-1311, regression)
specs/Block/block.spec.ts (❌ 7 failed, ⚠️ 0 flaky)
  • ❌ Block: User A and User B are NOT in the same team > I want to cancel blocking a 1:1 conversation from conversation list (tags: TC-137, regression)
  • ❌ Block: User A and User B are NOT in the same team > Verify you can block a user who is not in your team (tags: TC-140, regression)
  • ❌ Block: User A and User B are NOT in the same team > Verify you still receive messages from blocked person in a group chat (tags: TC-141, regression)
  • ❌ Block: User A and User B are NOT in the same team > Verify you can unblock user from 1:1 conversation details (tags: TC-142, regression)
  • ❌ Block: User A and User B are NOT in the same team > Verify you cannot add a person who blocked you to a group chat (tags: TC-143, regression)
  • ❌ Block: User A and User B are NOT in the same team > Verify you can unblock someone from conversation list options (tags: TC-148, regression)
  • ❌ Block: User A and User B are in the same team > Verify you can not block a user from your team (tags: TC-8778, regression)
specs/Connections/Connections.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Connections > Verify 1on1 conversation is not created on the second end after you ignore connection request (tags: TC-365, TC-369, TC-370, TC-371, regression)
specs/CriticalFlow/accountManagement-TC-8639.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Account Management (tags: TC-8639, crit-flow-web)
specs/CriticalFlow/addMembersToChat-TC-8631.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Team owner adds whole team to an all team chat (tags: TC-8631, crit-flow-web)
specs/CriticalFlow/backupRestoration-TC-8634.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Setting up new device with a backup (tags: TC-8634, crit-flow-web)
specs/CriticalFlow/channelsCall-TC-8755.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Calls in channels with device switch and screenshare (tags: TC-8754, crit-flow-web)
specs/CriticalFlow/channelsManagement-TC-8752.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Channels Management (tags: TC-8752, crit-flow-web)
specs/CriticalFlow/conversationManagement-TC-8636.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Conversation Management (tags: TC-8636, crit-flow-web)
specs/CriticalFlow/groupCalls-TC-8632.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Planning group call with sending various messages during call (tags: TC-8632, crit-flow-web)
specs/CriticalFlow/groupVideoCall-TC-8637.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Group Video call (tags: TC-8637, crit-flow-web)
specs/CriticalFlow/joinTeam-TC-8635.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ New person joins team and setups up device (tags: TC-8635, crit-flow-web)
specs/CriticalFlow/messagesIn1On1-TC-8750.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Messages in 1:1 (tags: TC-8750, crit-flow-web)
specs/CriticalFlow/messagesInChannels-TC-8753.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Messages in Channels (tags: TC-8753, crit-flow-web)
specs/CriticalFlow/messagesInGroups-TC-8751.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Messages in Groups (tags: TC-8751, crit-flow-web)
specs/CriticalFlow/oneOnOneCall-TC-8754.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ 1:1 Video call with device switch and screenshare (tags: TC-8754, crit-flow-web)
specs/CriticalFlow/personalAccountLifecycle-TC-8638.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Personal Account Lifecycle (tags: TC-8638, crit-flow-web)
specs/Edit/edit.spec.ts (❌ 8 failed, ⚠️ 0 flaky)
  • ❌ Edit > I can edit my message in 1:1 (tags: TC-679, regression)
  • ❌ Edit > I can edit my message in a group conversation (tags: TC-680, regression)
  • ❌ Edit > I see changed message if message was edited from another device (tags: TC-682, regression)
  • ❌ Edit > I cannot edit another users message (tags: TC-683, regression)
  • ❌ Edit > I can edit my last message by pressing the up arrow key (tags: TC-686, regression)
  • ❌ Edit > Editing a message does not create unread dot on receiver side (tags: TC-690, regression)
  • ❌ Edit > I can see the changed message was edited from another user (tags: TC-692, regression)
  • ❌ Edit > I want to see the last edited text including a timestamp in message detail view if the message has been edited (tags: TC-3563, regression)
specs/LoginSpecs/login.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Verify you can sign in by email (tags: TC-3461, regression)
specs/RegressionSpecs/archive.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Archive status of conversation should only change by user explicitly changing it (tags: TC-97, TC-99, TC-104, TC-105, regression)
specs/RegressionSpecs/block-messages.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Block specs (tags: TC-141, regression)
specs/RegressionSpecs/block-search.spec.ts (❌ 1 failed, ⚠️ 0 flaky)
  • ❌ Block from search specs (tags: TC-144, regression)
specs/Reply/reply.spec.ts (❌ 17 failed, ⚠️ 0 flaky)
  • ❌ Reply > I should not be able to reply to a ping (tags: TC-8038, regression)
  • ❌ Reply > I should not be able to reply to timed messages (tags: TC-8039, regression)
  • ❌ Reply > I want to see a placeholder text as quote when original message is not available anymore (tags: TC-2994, regression)
  • ❌ Reply > I should not see the quoted message when searching for original message in collections (tags: TC-2996, regression)
  • ❌ Reply > I want to see truncated quote preview if quote is too long (tags: TC-2997, regression)
  • ❌ Reply > I want to reply to a picture (tags: TC-3002, regression)
  • ❌ Reply > I want to reply to an audio message (tags: TC-3003, regression)
  • ❌ Reply > I want to reply to a video message (tags: TC-3004, regression)
  • ❌ Reply > I want to reply to a link (tags: TC-3005, regression)
  • ❌ Reply > I want to reply to a file (tags: TC-3006, regression)
  • ❌ Reply > I want to reply to a reply (tags: TC-3007, regression)
  • ❌ Reply > I want to reply to a link mixed with text (tags: TC-3008, regression)
  • ❌ Reply > I want to reply to a location share (tags: TC-3009, regression)
  • ❌ Reply > I want to send a timed message as a reply to any type of a message (tags: TC-3011, regression)
  • ❌ Reply > I want to click the quoted message to jump to the original message (tags: TC-3013, regression)
  • ❌ Reply > I should not be able to send a reply after I got removed from the conversation (tags: TC-3014, regression)
  • ❌ Reply > I want to reply with mention and tap on the mention in the reply opens the user profile (tags: TC-3016, regression)
specs/SelfDeletingMessages/selfDeletingMessages.spec.ts (❌ 11 failed, ⚠️ 0 flaky)
  • ❌ Self Deleting Messages > Verify sending ephemeral text message in 1:1 (tags: TC-657, regression)
  • ❌ Self Deleting Messages > Verify sending ephemeral text message in group (tags: TC-658, regression)
  • ❌ Self Deleting Messages > Verify timer is applied to all messages until turning it off in 1:1 (tags: TC-662, regression)
  • ❌ Self Deleting Messages > Verify that message with previous timer are deleted on start-up when the timeout passed in 1:1 (tags: TC-664, regression)
  • ❌ Self Deleting Messages > Verify the message is not deleted for users that didn't read the message (tags: TC-675, regression)
  • ❌ set globally in group conversation > I want to set a global group conversation timer (tags: TC-3715, regression)
  • ❌ set globally in group conversation > I want to see the current timer in conversation details (tags: TC-3716, regression)
  • ❌ set globally in group conversation > I want to see timed message disable in an input bar when global settings conversation options are set (tags: TC-3718, regression)
  • ❌ set globally in group conversation > I want to see the ephemeral indicator is updated in the input field if someone sets a global timer in conversation options (tags: TC-3719, regression)
  • ❌ set globally in group conversation > I want to see a system message that a global timer was set or changed or removed in conversation options (tags: TC-3720, regression)
  • ❌ in search results > I want to see ephemeral messages in the search results (tags: TC-3717, regression)

@emil-wire
Copy link
Contributor Author

Bildschirmfoto 2025-11-14 um 13 23 11 Design update

type: SidebarTabs.UNREAD,
title: t('conversationLabelUnread'),
dataUieName: 'go-unread-view',
Icon: <Icon.MarkAsUnreadIcon />,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@emil-wire MarkAsUnreadIcon is missing on Icon component and locally this breaks the app - popup shows and the only thing to do is reload, which again shows same error. Please fix

Bumps [rimraf](https://github.com/isaacs/rimraf) from 6.1.0 to 6.1.2.
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](isaacs/rimraf@v6.1.0...v6.1.2)

---
updated-dependencies:
- dependency-name: rimraf
  dependency-version: 6.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
markbrockhoff and others added 23 commits November 25, 2025 16:02
Bumps [pm2](https://github.com/Unitech/pm2) from 6.0.13 to 6.0.14.
- [Release notes](https://github.com/Unitech/pm2/releases)
- [Changelog](https://github.com/Unitech/pm2/blob/master/CHANGELOG.md)
- [Commits](Unitech/pm2@v6.0.13...v6.0.14)

---
updated-dependencies:
- dependency-name: pm2
  dependency-version: 6.0.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](nodeca/js-yaml@3.14.1...3.14.2)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 3.14.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* test(TC-34579: verify signin button is disabled inc ase of empty credentials

* test(TC-3468): Verify sign in error appearance in case of suspended team account

* test(TC-3460): Verify current browser is set as temporary device

* test(TC-3465): Verify sign in error appearance in case of wrong credentials

* test(TC-3472): Ensure history is kept after refresh on permanent device

* test(TC-3473): create data driven test to also ensure history is kept on temporary device

* test(TC-1311): verify session expires

* test(TC-3480): check tls versions allowed by webapp server

* test(TC-1311): Ensure history is gone after logging out of public computer
…19825)

* fix(lifecycle): optimise online / offline event handling. Add heartbeat for WS

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* chore: rename to updateConnectivityStatus

* chore: add copilot suggested improvements

---------

Co-authored-by: Copilot <[email protected]>
Bumps [express](https://github.com/expressjs/express) from 4.21.2 to 4.22.0.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.22.0/History.md)
- [Commits](expressjs/express@4.21.2...4.22.0)

---
updated-dependencies:
- dependency-name: express
  dependency-version: 4.22.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* test(WPB-19940): add tests for blocking users

* test(block): refactor block.spec.ts according to Review-Comments

add function to userActions.ts to send a connection request

add fixture for connection request

delete conversationNotConnected.modal.ts, replace it with acknowledge.modal.ts

* test(block): refactor block.spec.ts according to Review-Comments

* test(block): refactor block.spec.ts according to Review-Comments

* test(block): fixed unclear comments and variable namings

---------

Co-authored-by: Klaus Boldt <[email protected]>
Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 2.12.0 to 2.13.0.
- [Release notes](https://github.com/crowdin/github-action/releases)
- [Commits](crowdin/github-action@v2.12.0...v2.13.0)

---
updated-dependencies:
- dependency-name: crowdin/github-action
  dependency-version: 2.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* initial commit

* add close modal handler

* added isFileEditable()

* added edit option for conversation assets

* add tests

* fixed getNode api call

* bump @webapp/core

* fix package.json

* fixed package.json

* fix package.json

* address PR comments

* fixed types
Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.26.0 to 16.26.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](stylelint/stylelint@16.26.0...16.26.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.26.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@playwright/test](https://github.com/microsoft/playwright) from 1.56.1 to 1.57.0.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](microsoft/playwright@v1.56.1...v1.57.0)

---
updated-dependencies:
- dependency-name: "@playwright/test"
  dependency-version: 1.57.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…19819)

Bumps [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) from 2.8.31 to 2.8.32.
- [Release notes](https://github.com/web-platform-dx/baseline-browser-mapping/releases)
- [Commits](web-platform-dx/baseline-browser-mapping@v2.8.31...v2.8.32)

---
updated-dependencies:
- dependency-name: baseline-browser-mapping
  dependency-version: 2.8.32
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [emoji-picker-react](https://github.com/ealush/emoji-picker-react) from 4.15.2 to 4.16.1.
- [Release notes](https://github.com/ealush/emoji-picker-react/releases)
- [Commits](https://github.com/ealush/emoji-picker-react/commits)

---
updated-dependencies:
- dependency-name: emoji-picker-react
  dependency-version: 4.16.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* refactor: use nvmrc to select node version

* feat: add job to build test service

* feat: shard tests across multiple runners with integrated testservice & job to collect reports

* fix: build shadowJar of testservice

* fix: generate json report when merging blobs

* refactor: only download chrome browser for tests

* ci: use github reporter in CI

* fix: re-use playwright config when merging reports to generate json report for PR comment

* refactor: don't pass github user and token when building testservice

* feat: use 16 runners for sharding

* feat: execute regression tests in addition to critical flow

* fix: make script for reporting playwright summary work with nested test suites

* chore: use SHA for third party actions

(So Sonar shuts up)

* refactor: use line reporter instead of github

The report annotations are too annoying

* refactor: stop background process of testservice after test

* fix: run critical flow and regression tests

* ci: increase number of parallel test runners to 32

Now that the regression tests and critical flow tests are executed 16 runners is a bit too little

* style: ignore prettier for shard definition

* chore: safe guard stripAnsi function in report generation
* refactor: update report script to group tests by file

* style: use list to render test cases

* feat: add direct link to download playwright report
@sonarqubecloud
Copy link

sonarqubecloud bot commented Dec 3, 2025

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.