Skip to content

Conversation

@dougfabris
Copy link
Member

@dougfabris dougfabris commented Dec 18, 2025

Proposed changes (including videos or screenshots)

Issue(s)

Steps to test or reproduce

Further comments

CORE-1574

Summary by CodeRabbit

  • Tests

    • Reorganized and consolidated modal page-objects for e2e tests; added several dedicated modal helpers and updated tests to use the new centralized exports.
    • Updated test selectors and imports for consistency.
  • Bug Fixes

    • Fixed typos in forward-chat selectors to ensure reliable test interactions.
  • Chores

    • Centralized modal test infrastructure to improve maintainability.
  • Accessibility

    • Added an aria-label to the forward chat modal for improved screen-reader support.

✏️ Tip: You can customize this high-level summary in your review settings.

@dionisio-bot
Copy link
Contributor

dionisio-bot bot commented Dec 18, 2025

Looks like this PR is ready to merge! 🎉
If you have any trouble, please check the PR guidelines

@changeset-bot
Copy link

changeset-bot bot commented Dec 18, 2025

⚠️ No Changeset found

Latest commit: 778ff27

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 18, 2025

Walkthrough

Reorganized e2e modal page-objects into a consolidated fragments/modals barrel, updated many test and page-object imports to the new locations, renamed/fixed several omnichannel selectors, added/removed specific modal page-object classes, and added an accessibility aria-label to the ForwardChatModal component.

Changes

Cohort / File(s) Summary
Modal barrel & new modal files
apps/meteor/tests/e2e/page-objects/fragments/modals/index.ts, .../modals/*.ts (apps-modal.ts, confirm-delete-modal.ts, create-new-modal.ts, disable-room-encryption-modal.ts, enable-room-encryption-modal.ts, enter-e2ee-password-modal.ts, enter-password-modal.ts, file-upload-modal.ts, omnichannel-close-chat-modal.ts, omnichannel-on-hold-modal.ts, omnichannel-transfer-chat-modal.ts, omnichannel-confirm-remove-chat.ts, omnichannel-contact-review-modal.ts, report-message-modal.ts, reset-e2ee-password-modal.ts, save-e2ee-password-modal.ts, upsell-modal.ts, edit-status-modal.ts)
Added consolidated barrel export and multiple modal page-object classes (new or moved); adjusted imports for ToastMessages/test utilities; added modal-specific methods (confirm, enable, disable, enterPassword, selectUser/Department, getPassword, etc.).
Exports & fragment index refactor
apps/meteor/tests/e2e/page-objects/fragments/index.ts, apps/meteor/tests/e2e/page-objects/fragments/e2ee.ts
Removed individual modal re-exports, added ./modals and ./toolbar re-exports, removed several modal classes from e2ee.ts leaving only banner exports.
Page-object rework / API changes
.../page-objects/fragments/listbox.ts, .../fragments/home-omnichannel-content.ts, .../omnichannel-info.ts, .../omnichannel-contact-center-chats.ts
Listbox constructor changed to accept Locator and added selectOption/getOption; HomeOmnichannelContent had contactReviewModal removed; OmnichannelInfo and OmnichannelChats updated to consume new modal classes and added/removed members (contactReviewModal, solveConflict, btnSeeConflicts).
Deleted/removed old modal artifacts
apps/meteor/tests/e2e/page-objects/omnichannel-contact-review-modal.ts, apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts (ConfirmDeleteModal removed from here)
Deleted legacy OmnichannelContactReviewModal file and removed duplicate ConfirmDeleteModal implementation from modal.ts (moved to confirm-delete-modal.ts).
Test import updates
apps/meteor/tests/e2e/**/*.spec.ts (apps-modal.spec.ts, e2e-encryption/, feature-preview.spec.ts, federation/**/.ts, team-management.spec.ts, voice-calls-ce.spec.ts, etc.)
Updated import paths to use consolidated ./fragments/modals (or ../fragments/modals) instead of old module locations; no logic changes.
Omnichannel selector fixes & test changes
apps/meteor/tests/e2e/omnichannel/*.spec.ts (omnichannel-chat-transfers.spec.ts, omnichannel-transfer-to-another-agents.spec.ts, omnichannel-contact-conflict-review.spec.ts)
Fixed selector typos (inputFoward* → inputForward*); replaced modal-driven contact-conflict flow with direct solveConflict call and removed page param in one test.
Client UI minor change
apps/meteor/client/views/omnichannel/modals/ForwardChatModal.tsx
Added aria-label={t('Forward_chat')} to Modal and removed data-qa-id='forward-chat-modal'.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~35 minutes

Possibly related PRs

Suggested reviewers

  • MartinSchoeler

Poem

🐰 I hopped through modals, tidy and spry,

Moved doors to a barrel so imports fly,
Fixed a typo, added a label fair,
Tests now find dialogs with less despair,
Tiny rabbit cheers — organized with care! 🎉

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'test: Reorg modal page objects' directly reflects the main change—reorganizing modal page objects in the test suite.
Linked Issues check ✅ Passed The PR reorganizes modal page objects by consolidating modals into a new fragments/modals barrel export and updating import paths across test files, aligning with CORE-1574's goal to reorganize modal locators.
Out of Scope Changes check ✅ Passed All changes are focused on restructuring modal page objects and updating import paths. Minor fixes (typo corrections in selectors, accessibility labels) are tightly scoped to support the reorganization.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch test/reorg-modal-page-objects

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 8286db8 and 077bd98.

📒 Files selected for processing (1)
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: 📦 Build Packages
  • GitHub Check: CodeQL-Build
  • GitHub Check: CodeQL-Build

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 18, 2025

📦 Docker Image Size Report

📈 Changes

Service Current Baseline Change Percent
sum of all images 1.1GiB 1.1GiB +11MiB
rocketchat 355MiB 345MiB +11MiB
omnichannel-transcript-service 132MiB 132MiB -1.8KiB
queue-worker-service 132MiB 132MiB -1.3KiB
ddp-streamer-service 126MiB 126MiB -860B
account-service 113MiB 113MiB -509B
authorization-service 111MiB 111MiB -308B
presence-service 111MiB 111MiB -474B

📊 Historical Trend

---
config:
  theme: "dark"
  xyChart:
    width: 900
    height: 400
---
xychart
  title "Image Size Evolution by Service (Last 30 Days + This PR)"
  x-axis ["11/15 22:28", "11/16 01:28", "11/17 23:50", "11/18 22:53", "11/19 23:02", "11/21 16:49", "11/24 17:34", "11/27 22:32", "11/28 19:05", "12/01 23:01", "12/02 21:57", "12/03 21:00", "12/04 18:17", "12/05 21:56", "12/08 20:15", "12/09 22:17", "12/10 23:26", "12/11 21:56", "12/12 22:45", "12/13 01:34", "12/15 22:31", "12/16 22:18", "12/17 21:04", "12/18 23:12", "12/19 23:27", "12/20 21:03", "12/22 18:54", "12/23 16:16", "12/24 18:18 (PR)"]
  y-axis "Size (GB)" 0 --> 0.5
  line "account-service" [0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11]
  line "authorization-service" [0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11]
  line "ddp-streamer-service" [0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12]
  line "omnichannel-transcript-service" [0.14, 0.14, 0.14, 0.14, 0.14, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13]
  line "presence-service" [0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11]
  line "queue-worker-service" [0.14, 0.14, 0.14, 0.14, 0.14, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13]
  line "rocketchat" [0.36, 0.36, 0.35, 0.35, 0.35, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.35]
Loading

Statistics (last 28 days):

  • 📊 Average: 1.5GiB
  • ⬇️ Minimum: 1.2GiB
  • ⬆️ Maximum: 1.6GiB
  • 🎯 Current PR: 1.1GiB
ℹ️ About this report

This report compares Docker image sizes from this build against the develop baseline.

  • Tag: pr-37871
  • Baseline: develop
  • Timestamp: 2025-12-24 18:18:16 UTC
  • Historical data points: 28

Updated: Wed, 24 Dec 2025 18:18:17 GMT

@dougfabris dougfabris added this to the 8.1.0 milestone Dec 22, 2025
@codecov
Copy link

codecov bot commented Dec 22, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 70.62%. Comparing base (a8a84ab) to head (778ff27).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop   #37871      +/-   ##
===========================================
- Coverage    70.66%   70.62%   -0.04%     
===========================================
  Files         3143     3143              
  Lines       108694   108694              
  Branches     19572    19578       +6     
===========================================
- Hits         76810    76768      -42     
- Misses       29887    29924      +37     
- Partials      1997     2002       +5     
Flag Coverage Δ
e2e 60.16% <ø> (-0.04%) ⬇️
e2e-api 47.47% <ø> (+0.01%) ⬆️
unit 71.74% <ø> (-0.06%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 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.

@dougfabris dougfabris force-pushed the test/reorg-modal-page-objects branch from 892eef5 to 5d7bc46 Compare December 23, 2025 18:16
@dougfabris dougfabris force-pushed the test/reorg-modal-page-objects branch 2 times, most recently from 21648c8 to a416643 Compare December 23, 2025 23:29
@dougfabris dougfabris force-pushed the test/reorg-modal-page-objects branch from a416643 to 8286db8 Compare December 24, 2025 13:20
@dougfabris dougfabris marked this pull request as ready for review December 24, 2025 14:11
@dougfabris dougfabris requested a review from a team as a code owner December 24, 2025 14:11
@dougfabris dougfabris added the stat: QA assured Means it has been tested and approved by a company insider label Dec 24, 2025
@dionisio-bot dionisio-bot bot added the stat: ready to merge PR tested and approved waiting for merge label Dec 24, 2025
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 46 files

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (4)
apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts (1)

10-12: Consider using a getter for consistency with other modal page objects.

Other modal classes in this PR (e.g., EnableRoomEncryptionModal, SaveE2EEPasswordModal) use getters for button accessors (private get enableButton), while this uses a method. Using a consistent accessor style improves maintainability.

🔎 Proposed fix
-	private btnDelete() {
+	private get btnDelete() {
 		return this.root.getByRole('button', { name: 'Delete' });
 	}
apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts (2)

14-16: Prefer semantic locator for the comment textarea.

As per coding guidelines, prefer semantic locators over locator(). Consider using getByRole('textbox') or getByLabel() if the textarea has an accessible label.

🔎 Proposed fix
 	get inputComment(): Locator {
-		return this.root.locator('textarea[name="comment"]');
+		return this.root.getByRole('textbox', { name: 'Leave a comment' });
 	}

26-28: Use getByRole() instead of CSS role selector string.

The string 'role=button[name="Forward"]' is a Playwright CSS selector, but the preferred approach per coding guidelines is to use the semantic getByRole() method.

🔎 Proposed fix
 	get btnForward(): Locator {
-		return this.root.locator('role=button[name="Forward"]');
+		return this.root.getByRole('button', { name: 'Forward' });
 	}
apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-confirm-remove-chat.ts (1)

6-8: Consider specifying the dialog name for more precise targeting.

Using page.getByRole('dialog') without a name option is less specific than other modal classes in this PR. If multiple dialogs are present, this could match unintended elements. Consider adding an accessible name if available.

🔎 Proposed fix (if the dialog has an accessible name)
 	constructor(page: Page) {
-		super(page.getByRole('dialog'));
+		super(page.getByRole('dialog', { name: 'Delete chat' }));
 	}

Please verify the actual dialog's accessible name in the application to ensure the selector is appropriately specific.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between a8a84ab and 8286db8.

📒 Files selected for processing (46)
  • apps/meteor/client/views/omnichannel/modals/ForwardChatModal.tsx
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/setupE2EEPassword.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/page-objects/encrypted-room.ts
  • apps/meteor/tests/e2e/page-objects/fragments/e2ee.ts
  • apps/meteor/tests/e2e/page-objects/fragments/home-omnichannel-content.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/listbox.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/apps-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/disable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/edit-status-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/file-upload-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-close-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-confirm-remove-chat.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-on-hold-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/upsell-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toolbar.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-contact-center-chats.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-info.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-transfer-chat-modal.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
💤 Files with no reviewable changes (4)
  • apps/meteor/tests/e2e/page-objects/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/e2ee.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/apps-modal.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-transfer-chat-modal.ts
🧰 Additional context used
📓 Path-based instructions (5)
**/*.{ts,tsx,js}

📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)

**/*.{ts,tsx,js}: Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests
Avoid code comments in the implementation

Files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-password-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-close-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-confirm-remove-chat.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/client/views/omnichannel/modals/ForwardChatModal.tsx
  • apps/meteor/tests/e2e/page-objects/fragments/modals/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/disable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
  • apps/meteor/tests/e2e/page-objects/encrypted-room.ts
  • apps/meteor/tests/e2e/page-objects/fragments/home-omnichannel-content.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toolbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-info.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-contact-center-chats.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/edit-status-modal.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/e2e-encryption/setupE2EEPassword.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/listbox.ts
apps/meteor/tests/e2e/page-objects/**/*.ts

📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)

Utilize existing page objects pattern from apps/meteor/tests/e2e/page-objects/

Files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-close-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-confirm-remove-chat.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/disable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/page-objects/encrypted-room.ts
  • apps/meteor/tests/e2e/page-objects/fragments/home-omnichannel-content.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toolbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-info.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-contact-center-chats.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/edit-status-modal.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/listbox.ts
apps/meteor/tests/e2e/**/*.{ts,spec.ts}

📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)

apps/meteor/tests/e2e/**/*.{ts,spec.ts}: Store commonly used locators in variables/constants for reuse
Follow Page Object Model pattern consistently in Playwright tests

Files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-password-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-close-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-confirm-remove-chat.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/disable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
  • apps/meteor/tests/e2e/page-objects/encrypted-room.ts
  • apps/meteor/tests/e2e/page-objects/fragments/home-omnichannel-content.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toolbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-info.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-contact-center-chats.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/edit-status-modal.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/e2e-encryption/setupE2EEPassword.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/listbox.ts
**/*.spec.ts

📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)

**/*.spec.ts: Use descriptive test names that clearly communicate expected behavior in Playwright tests
Use .spec.ts extension for test files (e.g., login.spec.ts)

Files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
apps/meteor/tests/e2e/**/*.spec.ts

📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)

apps/meteor/tests/e2e/**/*.spec.ts: All test files must be created in apps/meteor/tests/e2e/ directory
Avoid using page.locator() in Playwright tests - always prefer semantic locators such as page.getByRole(), page.getByLabel(), page.getByText(), or page.getByTitle()
Use test.beforeAll() and test.afterAll() for setup/teardown in Playwright tests
Use test.step() for complex test scenarios to improve organization in Playwright tests
Group related tests in the same file
Utilize Playwright fixtures (test, page, expect) for consistency in test files
Prefer web-first assertions (toBeVisible, toHaveText, etc.) in Playwright tests
Use expect matchers for assertions (toEqual, toContain, toBeTruthy, toHaveLength, etc.) instead of assert statements in Playwright tests
Use page.waitFor() with specific conditions instead of hardcoded timeouts in Playwright tests
Implement proper wait strategies for dynamic content in Playwright tests
Maintain test isolation between test cases in Playwright tests
Ensure clean state for each test execution in Playwright tests
Ensure tests run reliably in parallel without shared state conflicts

Files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
🧠 Learnings (24)
📓 Common learnings
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/page-objects/**/*.ts : Utilize existing page objects pattern from `apps/meteor/tests/e2e/page-objects/`
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,spec.ts} : Follow Page Object Model pattern consistently in Playwright tests
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,spec.ts} : Store commonly used locators in variables/constants for reuse
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Utilize Playwright fixtures (`test`, `page`, `expect`) for consistency in test files
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37834
File: apps/meteor/tests/e2e/page-objects/fragments/admin-flextab-emoji.ts:12-22
Timestamp: 2025-12-16T17:29:45.163Z
Learning: In page object files under `apps/meteor/tests/e2e/page-objects/`, always import `expect` from `../../utils/test` (Playwright's async expect), not from Jest. Jest's `expect` has a synchronous signature and will cause TypeScript errors when used with web-first assertions like `toBeVisible()`.
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/page-objects/**/*.ts : Utilize existing page objects pattern from `apps/meteor/tests/e2e/page-objects/`

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-password-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-close-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-confirm-remove-chat.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/disable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
  • apps/meteor/tests/e2e/page-objects/encrypted-room.ts
  • apps/meteor/tests/e2e/page-objects/fragments/home-omnichannel-content.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toolbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-info.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-contact-center-chats.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/edit-status-modal.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/e2e-encryption/setupE2EEPassword.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/listbox.ts
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,spec.ts} : Follow Page Object Model pattern consistently in Playwright tests

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-password-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-close-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-confirm-remove-chat.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/disable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
  • apps/meteor/tests/e2e/page-objects/encrypted-room.ts
  • apps/meteor/tests/e2e/page-objects/fragments/home-omnichannel-content.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toolbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-info.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-contact-center-chats.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/edit-status-modal.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/e2e-encryption/setupE2EEPassword.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/listbox.ts
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Ensure tests run reliably in parallel without shared state conflicts

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-password-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-close-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/disable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
  • apps/meteor/tests/e2e/page-objects/encrypted-room.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toolbar.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-info.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/edit-status-modal.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/e2e-encryption/setupE2EEPassword.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Use `expect` matchers for assertions (`toEqual`, `toContain`, `toBeTruthy`, `toHaveLength`, etc.) instead of `assert` statements in Playwright tests

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-password-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
  • apps/meteor/tests/e2e/page-objects/encrypted-room.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/edit-status-modal.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/listbox.ts
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Utilize Playwright fixtures (`test`, `page`, `expect`) for consistency in test files

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-password-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-close-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-confirm-remove-chat.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/disable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
  • apps/meteor/tests/e2e/page-objects/encrypted-room.ts
  • apps/meteor/tests/e2e/page-objects/fragments/home-omnichannel-content.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toolbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-info.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-contact-center-chats.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/edit-status-modal.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/e2e-encryption/setupE2EEPassword.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/listbox.ts
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,spec.ts} : Store commonly used locators in variables/constants for reuse

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-close-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-confirm-remove-chat.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/disable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/page-objects/encrypted-room.ts
  • apps/meteor/tests/e2e/page-objects/fragments/home-omnichannel-content.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toolbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-info.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/edit-status-modal.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/e2e-encryption/setupE2EEPassword.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/listbox.ts
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Prefer web-first assertions (`toBeVisible`, `toHaveText`, etc.) in Playwright tests

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-password-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-close-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/disable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toolbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/edit-status-modal.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/listbox.ts
📚 Learning: 2025-12-16T17:29:40.430Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37834
File: apps/meteor/tests/e2e/page-objects/fragments/admin-flextab-emoji.ts:12-22
Timestamp: 2025-12-16T17:29:40.430Z
Learning: In all page-object files under apps/meteor/tests/e2e/page-objects/, import expect from ../../utils/test (Playwright's async expect) instead of from Jest. Jest's expect is synchronous and incompatible with web-first assertions like toBeVisible, which can cause TypeScript errors.

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-close-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-confirm-remove-chat.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/disable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/page-objects/encrypted-room.ts
  • apps/meteor/tests/e2e/page-objects/fragments/home-omnichannel-content.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toolbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-info.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-contact-center-chats.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/edit-status-modal.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/listbox.ts
📚 Learning: 2025-11-19T18:20:37.116Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37419
File: apps/meteor/server/services/media-call/service.ts:141-141
Timestamp: 2025-11-19T18:20:37.116Z
Learning: In apps/meteor/server/services/media-call/service.ts, the sendHistoryMessage method should use call.caller.id or call.createdBy?.id as the message author, not call.transferredBy?.id. Even for transferred calls, the message should appear in the DM between the two users who are calling each other, not sent by the person who transferred the call.

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Use `test.step()` for complex test scenarios to improve organization in Playwright tests

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Avoid using `page.locator()` in Playwright tests - always prefer semantic locators such as `page.getByRole()`, `page.getByLabel()`, `page.getByText()`, or `page.getByTitle()`

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-confirm-remove-chat.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/disable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/home-omnichannel-content.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toolbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-info.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/page-objects/fragments/listbox.ts
📚 Learning: 2025-10-06T20:32:23.658Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37152
File: packages/apps-engine/tests/test-data/utilities.ts:557-573
Timestamp: 2025-10-06T20:32:23.658Z
Learning: In packages/apps-engine/tests/test-data/utilities.ts, the field name `isSubscripbedViaBundle` in the `IMarketplaceSubscriptionInfo` type should not be flagged as a typo, as it may match the upstream API's field name.

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Group related tests in the same file

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-close-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/page-objects/encrypted-room.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toolbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/edit-status-modal.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/e2e-encryption/setupE2EEPassword.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
📚 Learning: 2025-09-23T19:22:59.217Z
Learnt from: dougfabris
Repo: RocketChat/Rocket.Chat PR: 36987
File: apps/meteor/tests/e2e/page-objects/fragments/room-toolbar.ts:10-20
Timestamp: 2025-09-23T19:22:59.217Z
Learning: In Playwright e2e tests, prefer stable selectors like data-qa-id attributes over localized text in getByRole() or getByText() calls to prevent test failures when UI language changes. Test translations separately by validating actual text content after ensuring UI interactions work with stable selectors.

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts
📚 Learning: 2025-12-10T21:00:54.909Z
Learnt from: KevLehman
Repo: RocketChat/Rocket.Chat PR: 37091
File: ee/packages/abac/jest.config.ts:4-7
Timestamp: 2025-12-10T21:00:54.909Z
Learning: Rocket.Chat monorepo: Jest testMatch pattern '<rootDir>/src/**/*.spec.(ts|js|mjs)' is valid in this repo and used across multiple packages (e.g., packages/tools, ee/packages/omnichannel-services). Do not flag it as invalid in future reviews.

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-close-chat-modal.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : All test files must be created in `apps/meteor/tests/e2e/` directory

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/page-objects/encrypted-room.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/edit-status-modal.ts
  • apps/meteor/tests/e2e/e2e-encryption/setupE2EEPassword.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Maintain test isolation between test cases in Playwright tests

Applied to files:

  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/index.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/report-message-modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
  • apps/meteor/tests/e2e/page-objects/encrypted-room.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/account-security.ts
  • apps/meteor/tests/e2e/e2e-encryption/setupE2EEPassword.ts
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Ensure clean state for each test execution in Playwright tests

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Implement proper wait strategies for dynamic content in Playwright tests

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/navbar.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/home-omnichannel-content.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/confirm-delete-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Use `page.waitFor()` with specific conditions instead of hardcoded timeouts in Playwright tests

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/modals/modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts
  • apps/meteor/tests/e2e/e2e-encryption/setupE2EEPassword.ts
📚 Learning: 2025-12-16T17:29:45.163Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37834
File: apps/meteor/tests/e2e/page-objects/fragments/admin-flextab-emoji.ts:12-22
Timestamp: 2025-12-16T17:29:45.163Z
Learning: In page object files under `apps/meteor/tests/e2e/page-objects/`, always import `expect` from `../../utils/test` (Playwright's async expect), not from Jest. Jest's `expect` has a synchronous signature and will cause TypeScript errors when used with web-first assertions like `toBeVisible()`.

Applied to files:

  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/voice-calls-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encryption-decryption.spec.ts
  • apps/meteor/tests/e2e/apps/apps-modal.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-chat-transfers.spec.ts
  • apps/meteor/tests/e2e/team-management.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/setupE2EEPassword.ts
  • apps/meteor/tests/e2e/feature-preview.spec.ts
📚 Learning: 2025-12-18T15:18:31.688Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37773
File: apps/meteor/client/views/mediaCallHistory/MediaCallHistoryInternal.tsx:24-34
Timestamp: 2025-12-18T15:18:31.688Z
Learning: In apps/meteor/client/views/mediaCallHistory/MediaCallHistoryInternal.tsx, for internal call history items, the item.contactId is guaranteed to always match either the caller.id or callee.id in the call data, so the contact resolution in getContact will never result in undefined.

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-contact-conflict-review.spec.ts
📚 Learning: 2025-10-07T15:08:37.419Z
Learnt from: cardoso
Repo: RocketChat/Rocket.Chat PR: 36942
File: apps/meteor/client/lib/e2ee/pbkdf2.ts:13-45
Timestamp: 2025-10-07T15:08:37.419Z
Learning: In apps/meteor/client/lib/e2ee/pbkdf2.ts, the team has decided to use Latin-1 encoding (via Binary.toArrayBuffer and Binary.toString) for password encoding and decrypt output instead of UTF-8 encoding. This is a deliberate choice for E2EE password/key material handling.

Applied to files:

  • apps/meteor/tests/e2e/e2e-encryption/e2ee-passphrase-management.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/setupE2EEPassword.ts
🧬 Code graph analysis (10)
apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/listbox.ts (1)
  • Listbox (3-13)
apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts (1)
  • ToastMessages (5-29)
apps/meteor/tests/e2e/page-objects/fragments/modals/disable-room-encryption-modal.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts (1)
  • ToastMessages (5-29)
apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/listbox.ts (1)
  • Listbox (3-13)
apps/meteor/tests/e2e/page-objects/fragments/modals/reset-e2ee-password-modal.ts (1)
apps/meteor/tests/e2e/page-objects/login.ts (1)
  • LoginPage (9-55)
apps/meteor/tests/e2e/page-objects/fragments/modals/create-new-modal.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/listbox.ts (1)
  • Listbox (3-13)
apps/meteor/tests/e2e/page-objects/omnichannel-info.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-contact-review-modal.ts (1)
  • OmnichannelContactReviewModal (7-27)
apps/meteor/tests/e2e/page-objects/fragments/modals/enable-room-encryption-modal.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts (1)
  • ToastMessages (5-29)
apps/meteor/tests/e2e/page-objects/fragments/modals/enter-e2ee-password-modal.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/modals/save-e2ee-password-modal.ts (1)
  • password (14-16)
apps/meteor/tests/e2e/page-objects/omnichannel-contact-center-chats.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-confirm-remove-chat.ts (1)
  • OmnichannelConfirmRemoveChat (5-18)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: cubic · AI code reviewer

@dionisio-bot dionisio-bot bot removed the stat: ready to merge PR tested and approved waiting for merge label Dec 24, 2025
@dougfabris dougfabris added stat: QA assured Means it has been tested and approved by a company insider and removed stat: QA assured Means it has been tested and approved by a company insider labels Dec 24, 2025
@dionisio-bot dionisio-bot bot added the stat: ready to merge PR tested and approved waiting for merge label Dec 24, 2025
@kodiakhq kodiakhq bot merged commit 108f7f5 into develop Dec 24, 2025
80 of 82 checks passed
@kodiakhq kodiakhq bot deleted the test/reorg-modal-page-objects branch December 24, 2025 19:11
gaolin1 pushed a commit to gaolin1/medsense.webchat that referenced this pull request Jan 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stat: QA assured Means it has been tested and approved by a company insider stat: ready to merge PR tested and approved waiting for merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants