Skip to content

Conversation

@dougfabris
Copy link
Member

@dougfabris dougfabris commented Nov 6, 2025

Proposed changes (including videos or screenshots)

Issue(s)

Steps to test or reproduce

Further comments

Summary by CodeRabbit

  • Tests
    • Refactored end-to-end test infrastructure to use improved toast notification handling API.
    • Simplified test utilities for message verification and dismissal across the test suite.

@dionisio-bot
Copy link
Contributor

dionisio-bot bot commented Nov 6, 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 Nov 6, 2025

⚠️ No Changeset found

Latest commit: a0b7dba

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

@dougfabris dougfabris added this to the 7.13.0 milestone Nov 6, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 6, 2025

Walkthrough

Refactors e2e tests and page-objects to use a unified ToastMessages API for toast detection and dismissal. Removes legacy ToastBar and direct toast locators, adds a base Account class, updates multiple page-objects to expose toastMessage, and adjusts tests to waitForDisplay/dismissToast via the new abstraction.

Changes

Cohort / File(s) Summary
Tests: General toast handling refactor
apps/meteor/tests/e2e/account-profile.spec.ts, .../admin-users-custom-fields.spec.ts, .../admin-users-role-management.spec.ts, .../channel-management.spec.ts, .../delete-account.spec.ts, .../e2e-encryption/*, .../e2ee-otr.spec.ts, .../enforce-2FA.spec.ts, .../message-actions.spec.ts, .../messaging.spec.ts, .../prune-messages.spec.ts, .../retention-policy.spec.ts, .../settings-int.spec.ts
Replaced direct toast locators/ToastBar with toastMessage.waitForDisplay() and toastMessage.dismissToast(); removed ToastBar usage; some tests switched from visibility assertions to explicit waits.
Tests: Omnichannel
apps/meteor/tests/e2e/omnichannel/omnichannel-*.spec.ts
Switched toast visibility checks/close-button clicks to toastMessage.waitForDisplay() and toastMessage.dismissToast(); standardized toast interactions.
Tests: Federation
apps/meteor/tests/e2e/federation/tests/**/*, .../federation/page-objects/channel.ts
Updated tests to use toastMessage.waitForDisplay(); federation channel page-object now exposes toastMessage and removes toastSuccess/toastError getters.
Page-objects: Core
apps/meteor/tests/e2e/page-objects/account.ts, .../account-profile.ts, .../admin.ts, .../home-channel.ts, .../home-omnichannel.ts, .../fragments/toast-messages.ts, .../fragments/index.ts, .../index.ts, .../toastBar.ts
Added base Account with toastMessage; AccountProfile extends Account; Admin/HomeChannel/HomeOmnichannel now expose toastMessage; removed old toastSuccess/dismissToast methods; enhanced ToastMessages (dismissToast(type), inlined message locator); exported toolbar; removed toastBar export and deleted toastBar file.
Page-objects: Omnichannel
apps/meteor/tests/e2e/page-objects/omnichannel-*.ts
Introduced toastMessage property; removed toastSuccess and close-button getters; updated imports to include ToastMessages.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Tester
  participant Test as E2E Test
  participant PO as Page Object
  participant TM as ToastMessages
  participant UI as App UI

  Tester->>Test: Perform action (e.g., save/update)
  Test->>PO: Trigger UI interaction
  PO->>UI: Execute action
  Note over UI: Action emits toast
  Test->>TM: waitForDisplay({ type?, message? })
  TM-->>Test: Toast detected
  Test->>TM: dismissToast(type?)
  TM->>UI: Close toast
  UI-->>Test: Toast dismissed
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • toast-messages.ts: Parameterized dismissToast and locator changes
  • account.ts/account-profile.ts: New base class and inheritance shift
  • home-channel.ts/home-omnichannel.ts/admin.ts: API surface changes (removed getters/methods, added toastMessage)
  • federation/page-objects/channel.ts: Public API changes affecting multiple federation tests

Possibly related PRs

Suggested labels

stat: ready to merge, stat: QA assured

Suggested reviewers

  • MartinSchoeler
  • tassoevan

Poem

I nudge the toasts with gentle paws,
No more old bars, just shiny laws—
wait, dismiss, a tidy show,
The tests now hop where timings flow.
With whiskered grace I press “OK,”
And hop along to greet the day. 🐇✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main objective: refactoring toast handling in e2e tests by consolidating toast bar page objects into a unified ToastMessages component.
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/purge-duplicated-toastbar

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.

@codecov
Copy link

codecov bot commented Nov 6, 2025

Codecov Report

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

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff            @@
##           develop   #37410   +/-   ##
========================================
  Coverage    68.12%   68.13%           
========================================
  Files         3364     3364           
  Lines       115749   115749           
  Branches     20909    20937   +28     
========================================
+ Hits         78855    78862    +7     
+ Misses       34204    34195    -9     
- Partials      2690     2692    +2     
Flag Coverage Δ
e2e 57.48% <ø> (+<0.01%) ⬆️
unit 72.16% <ø> (+0.01%) ⬆️

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/purge-duplicated-toastbar branch from 3bce17f to 2c70aa3 Compare November 6, 2025 16:20
@dougfabris dougfabris marked this pull request as ready for review November 7, 2025 14:11
@dougfabris dougfabris requested a review from a team as a code owner November 7, 2025 14:11
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: 2

🧹 Nitpick comments (26)
apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts (1)

54-54: Good migration to toastMessage; consider asserting message and optional cleanup

Using waitForDisplay({ type: 'error' }) is correct. Optionally assert the error text and dismiss to keep the page stable for any follow-up steps.

Example:

- await poFederationChannelServer2.toastMessage.waitForDisplay({ type: 'error' });
+ await poFederationChannelServer2.toastMessage.waitForDisplay({ type: 'error', message: 'User not found' });
+ await poFederationChannelServer2.toastMessage.dismissToast('error');

Based on learnings (proper wait strategies).

Also applies to: 69-69

apps/meteor/tests/e2e/retention-policy.spec.ts (1)

187-187: Prevent toast dismissal race — wait before dismiss

Call waitForDisplay() before dismissToast() to avoid intermittent failures when the toast hasn’t rendered yet.

- await poHomeChannel.toastMessage.dismissToast();
+ await poHomeChannel.toastMessage.waitForDisplay(); // defaults to 'success'
+ await poHomeChannel.toastMessage.dismissToast();

As per coding guidelines (implement proper wait strategies).

Also applies to: 204-204

apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts (1)

186-186: Optional: dismiss toast after waiting

Not required, but dismissing post-wait can reduce UI interference with subsequent clicks.

- await poOmnichannelDepartments.toastMessage.waitForDisplay();
+ await poOmnichannelDepartments.toastMessage.waitForDisplay();
+ await poOmnichannelDepartments.toastMessage.dismissToast();

Based on learnings (clean state between steps).

apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts (1)

49-49: Avoid flakiness: wait for toast before dismiss

Ensure the toast is visible prior to clicking its close button.

- await poHomeChannel.toastMessage.dismissToast();
+ await poHomeChannel.toastMessage.waitForDisplay();
+ await poHomeChannel.toastMessage.dismissToast();

As per coding guidelines (web-first assertions and proper waits).

Also applies to: 59-59

apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts (1)

80-80: Synchronize toast handling to reduce race conditions

  • Line 80: don’t dismiss in Promise.all with other assertions. Wait, dismiss, then assert.
  • Lines 100/114: add waitForDisplay before dismiss.
  • Line 126: already using waitForDisplay — keep as is.
@@
- await Promise.all([
-   poOmnichannelPriorities.toastMessage.dismissToast(),
-   expect(poOmnichannelPriorities.managePriority.inputName).not.toBeVisible(),
-   expect(poOmnichannelPriorities.findPriority(PRIORITY_NAME)).toBeVisible(),
-   expect(poOmnichannelPriorities.findPriority('Highest')).not.toBeVisible(),
- ]);
+ await poOmnichannelPriorities.toastMessage.waitForDisplay();
+ await poOmnichannelPriorities.toastMessage.dismissToast();
+ await Promise.all([
+   expect(poOmnichannelPriorities.managePriority.inputName).not.toBeVisible(),
+   expect(poOmnichannelPriorities.findPriority(PRIORITY_NAME)).toBeVisible(),
+   expect(poOmnichannelPriorities.findPriority('Highest')).not.toBeVisible(),
+ ]);
@@
- await poOmnichannelPriorities.toastMessage.dismissToast();
+ await poOmnichannelPriorities.toastMessage.waitForDisplay();
+ await poOmnichannelPriorities.toastMessage.dismissToast();
@@
- await poOmnichannelPriorities.toastMessage.dismissToast();
+ await poOmnichannelPriorities.toastMessage.waitForDisplay();
+ await poOmnichannelPriorities.toastMessage.dismissToast();

As per coding guidelines (proper wait strategies).

Also applies to: 100-100, 114-114, 126-126

apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts (1)

81-81: Wait before dismissing success toast

Add an explicit wait to avoid brittle dismiss clicks right after save.

- await poHomeChannel.toastMessage.dismissToast();
+ await poHomeChannel.toastMessage.waitForDisplay();
+ await poHomeChannel.toastMessage.dismissToast();

As per coding guidelines (web-first waits).

Also applies to: 118-118

apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts (1)

79-79: Make toast wait explicit and dismiss to reduce flakiness

Specify type and dismiss after confirming display. Also consider replacing earlier hardcoded waits with web-first assertions.

Apply:

-      await agent.poHomeChannel.toastMessage.waitForDisplay();
+      await agent.poHomeChannel.toastMessage.waitForDisplay({ type: 'success' });
+      await agent.poHomeChannel.toastMessage.dismissToast();

For timeouts (e.g., Line 47, Line 63), prefer waiting on the expected chat/PDF elements to appear. As per coding guidelines.

apps/meteor/tests/e2e/enforce-2FA.spec.ts (1)

62-62: Be explicit about toast type

Pass type for clarity and stability.

-    await poHomeChannel.toastMessage.waitForDisplay();
+    await poHomeChannel.toastMessage.waitForDisplay({ type: 'success' });

As per coding guidelines.

apps/meteor/tests/e2e/federation/tests/channel/private.spec.ts (1)

439-439: Harden toast waits across these steps

  • Pass type for determinism.
  • Dismiss after the toast when subsequent interactions follow.

Pattern to apply at each occurrence:

- await poFederationChannelServer1.toastMessage.waitForDisplay();
+ await poFederationChannelServer1.toastMessage.waitForDisplay({ type: 'success' });
+ await poFederationChannelServer1.toastMessage.dismissToast();

Also consider replacing hardcoded timeouts (e.g., Line 1035) with web-first waits. As per coding guidelines.

Also applies to: 491-491, 553-553, 645-645, 708-708

apps/meteor/tests/e2e/settings-int.spec.ts (1)

24-24: LGTM; optional: assert message for specificity

Current error-type wait is fine. If message is stable, include it to avoid false positives.

await poAdminSettings.toastMessage.waitForDisplay({ type: 'error', message: '...' });

As per coding guidelines.

apps/meteor/tests/e2e/account-profile.spec.ts (1)

88-93: Make toast checks explicit; keep dismissal

Specify type to reduce ambiguity.

-      await poHomeChannel.toastMessage.waitForDisplay();
+      await poHomeChannel.toastMessage.waitForDisplay({ type: 'success' });
       await poHomeChannel.toastMessage.dismissToast();

-      await poHomeChannel.toastMessage.waitForDisplay();
+      await poHomeChannel.toastMessage.waitForDisplay({ type: 'success' });

As per coding guidelines.

apps/meteor/tests/e2e/delete-account.spec.ts (1)

67-67: Precise error assertion via toastMessage

Good use of type+message. Optionally dismiss the toast afterwards to keep the UI unobstructed for later steps.

apps/meteor/tests/e2e/message-actions.spec.ts (1)

163-164: Guard toast dismissal with an explicit wait

Call waitForDisplay before dismiss to avoid races; optionally scope by type.

-    await poHomeChannel.toastMessage.dismissToast();
+    await poHomeChannel.toastMessage.waitForDisplay({ type: 'success' });
+    await poHomeChannel.toastMessage.dismissToast();
apps/meteor/tests/e2e/admin-users-role-management.spec.ts (1)

41-42: Tighten toast asserts (add type; optionally dismiss)

Be explicit about toast type (and dismiss to keep UI clean).

-      await admin.toastMessage.waitForDisplay({ type: 'success', message: 'User is now an admin' });
+      await admin.toastMessage.waitForDisplay({ type: 'success', message: 'User is now an admin' });
+      await admin.toastMessage.dismissToast();
-      await admin.toastMessage.waitForDisplay({ type: 'success', message: 'User is no longer an admin' });
+      await admin.toastMessage.waitForDisplay({ type: 'success', message: 'User is no longer an admin' });
+      await admin.toastMessage.dismissToast();

As per coding guidelines.

Also applies to: 60-61

apps/meteor/tests/e2e/messaging.spec.ts (1)

183-196: Reduce flakiness in “stress test” edit loop

Waiting for a single /chat.update may not cover all edits. Consider awaiting the last edit deterministically (e.g., wait for N responses or final message text before assertion).

-    const editPromise = page.waitForResponse(
+    const editsToAwait = 5;
+    const editPromises = Array.from({ length: editsToAwait }, () =>
+      page.waitForResponse(
         (response) => /api\/v1\/chat.update/.test(response.url()) && response.status() === 200 && response.request().method() === 'POST',
-    );
+      ),
+    );
...
-    await editPromise;
+    await Promise.all(editPromises);

As per coding guidelines (web-first synchronization).

apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts (1)

441-442: Harden toast handling: specify type and dismiss

Make waits more specific and clear the toast to avoid UI overlap.

- await poFederationChannelServer1.toastMessage.waitForDisplay();
+ await poFederationChannelServer1.toastMessage.waitForDisplay({ type: 'success' });
+ await poFederationChannelServer1.toastMessage.dismissToast();

Repeat for the other occurrences in this file. As per coding guidelines.

Also applies to: 493-494, 555-556, 647-648, 710-711

apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts (1)

811-812: Be explicit on toast type and clear it

Add { type: 'success' } and dismiss for consistency.

- await poFederationChannelServer1.toastMessage.waitForDisplay();
+ await poFederationChannelServer1.toastMessage.waitForDisplay({ type: 'success' });
+ await poFederationChannelServer1.toastMessage.dismissToast();

Apply similarly at Line 833. Based on learnings.

Also applies to: 833-834

apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts (2)

55-57: Wait explicitly for the toast; avoid static timeout

Use waitForDisplay before dismiss; replace timeout with a state wait.

- await poHomeChannel.toastMessage.dismissToast();
- await page.waitForTimeout(1000);
+ await poHomeChannel.toastMessage.waitForDisplay({ type: 'success' });
+ await poHomeChannel.toastMessage.dismissToast();
+ await expect(poHomeChannel.content.encryptedRoomHeaderIcon).not.toBeVisible();

As per coding guidelines (web-first, no hardcoded timeouts).


69-71: Same here: explicit wait + no fixed sleep

Mirror the pattern for enabling encryption.

- await poHomeChannel.toastMessage.dismissToast();
- await page.waitForTimeout(1000);
+ await poHomeChannel.toastMessage.waitForDisplay({ type: 'success' });
+ await poHomeChannel.toastMessage.dismissToast();
+ await expect(poHomeChannel.content.encryptedRoomHeaderIcon).toBeVisible();
apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts (1)

1010-1010: Strengthen toast waits (add type; dismiss afterwards)

Specify toast type and clear it to avoid UI interference.

- await poFederationChannelServer1.toastMessage.waitForDisplay();
+ await poFederationChannelServer1.toastMessage.waitForDisplay({ type: 'success' });
+ await poFederationChannelServer1.toastMessage.dismissToast();

Apply similarly at Line 1052. As per coding guidelines.

Also applies to: 1052-1052

apps/meteor/tests/e2e/omnichannel/omnichannel-triggers.spec.ts (1)

77-78: Precede dismiss with a wait; keep UI clean

Wait for the toast to appear, then dismiss. This reduces races in CI.

- await agent.poHomeOmnichannel.triggers.toastMessage.dismissToast();
+ await agent.poHomeOmnichannel.triggers.toastMessage.waitForDisplay({ type: 'success' });
+ await agent.poHomeOmnichannel.triggers.toastMessage.dismissToast();

Repeat for the other occurrences. As per coding guidelines.

Also applies to: 85-85, 125-126

apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts (1)

36-38: Remove the new TODO comment

The added // TODO comment contradicts our guidance to keep implementation free of comments in these page objects. Please track this follow-up externally or via a typed helper field instead. As per coding guidelines.

apps/meteor/tests/e2e/page-objects/omnichannel-triggers.ts (1)

10-12: Stick to comment-free implementations

Please drop the newly introduced // TODO here; our e2e coding guidelines ask us to avoid inline implementation comments. Consider moving this note to an issue or follow-up card instead. As per coding guidelines.

apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts (1)

3-3: Good step toward deduped toast handling; consider consolidating via a BasePage to remove repetition.

  • Import and composition of ToastMessages look correct and align with the PR goal.
  • To avoid repeating toastMessage across page-objects, introduce a BasePage that holds page and toastMessage, then extend it here. This removes the TODO and centralizes toast behavior.

Example (for later application once BasePage exists):

export abstract class BasePage {
  constructor(protected readonly page: Page) {
    this.toastMessage = new ToastMessages(page);
  }
  readonly toastMessage: ToastMessages;
}

export class OmnichannelDepartments extends BasePage {
  readonly sidenav: OmnichannelSidenav;
  constructor(page: Page) {
    super(page);
    this.sidenav = new OmnichannelSidenav(page);
  }
}
  • Please also confirm ./fragments/index.ts re-exports ToastMessages to keep imports stable.

Also applies to: 10-12, 16-16

apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts (2)

816-816: Dismiss the toast after waiting to reduce flakiness.

After waitForDisplay(), dismissing the toast helps prevent overlay interference with later clicks.

Apply near these lines:

- await poFederationChannelServer1.toastMessage.waitForDisplay();
+ await poFederationChannelServer1.toastMessage.waitForDisplay();
+ await poFederationChannelServer1.toastMessage.dismissToast();

- await poFederationChannelServer2.toastMessage.waitForDisplay();
+ await poFederationChannelServer2.toastMessage.waitForDisplay();
+ await poFederationChannelServer2.toastMessage.dismissToast();

Based on learnings

Also applies to: 838-838


908-908: Avoid hard-coded toast copy; prefer stable signals.

String-matching on UI text is brittle (i18n/wording changes). If the success text isn’t contractually stable, rely only on type, or add a test helper with a stable selector.

Option A (keep only type):

- await poFederationChannelServer1.toastMessage.waitForDisplay({ type: 'success', message: 'Message has been starred' });
+ await poFederationChannelServer1.toastMessage.waitForDisplay({ type: 'success' });
+ await poFederationChannelServer1.toastMessage.dismissToast();

- await poFederationChannelServer2.toastMessage.waitForDisplay({ type: 'success', message: 'Message has been starred' });
+ await poFederationChannelServer2.toastMessage.waitForDisplay({ type: 'success' });
+ await poFederationChannelServer2.toastMessage.dismissToast();

Option B (if copy is stable in EN builds): keep message but still dismiss afterward.

Based on learnings

Also applies to: 929-929

📜 Review details

Configuration used: CodeRabbit 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 3310983 and 65e87b6.

📒 Files selected for processing (39)
  • apps/meteor/tests/e2e/account-profile.spec.ts (1 hunks)
  • apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts (2 hunks)
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts (2 hunks)
  • apps/meteor/tests/e2e/channel-management.spec.ts (3 hunks)
  • apps/meteor/tests/e2e/delete-account.spec.ts (1 hunks)
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts (5 hunks)
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts (2 hunks)
  • apps/meteor/tests/e2e/enforce-2FA.spec.ts (1 hunks)
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts (2 hunks)
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts (2 hunks)
  • apps/meteor/tests/e2e/federation/tests/channel/private.spec.ts (5 hunks)
  • apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts (5 hunks)
  • apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts (4 hunks)
  • apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts (4 hunks)
  • apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts (4 hunks)
  • apps/meteor/tests/e2e/message-actions.spec.ts (1 hunks)
  • apps/meteor/tests/e2e/messaging.spec.ts (2 hunks)
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments-ce.spec.ts (1 hunks)
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts (1 hunks)
  • apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts (4 hunks)
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts (1 hunks)
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-transcript.spec.ts (1 hunks)
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts (1 hunks)
  • apps/meteor/tests/e2e/omnichannel/omnichannel-triggers.spec.ts (2 hunks)
  • apps/meteor/tests/e2e/page-objects/account-profile.ts (1 hunks)
  • apps/meteor/tests/e2e/page-objects/account.ts (1 hunks)
  • apps/meteor/tests/e2e/page-objects/admin.ts (2 hunks)
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts (1 hunks)
  • apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts (1 hunks)
  • apps/meteor/tests/e2e/page-objects/home-channel.ts (3 hunks)
  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts (3 hunks)
  • apps/meteor/tests/e2e/page-objects/index.ts (0 hunks)
  • apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts (1 hunks)
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts (2 hunks)
  • apps/meteor/tests/e2e/page-objects/omnichannel-triggers.ts (1 hunks)
  • apps/meteor/tests/e2e/page-objects/toastBar.ts (0 hunks)
  • apps/meteor/tests/e2e/prune-messages.spec.ts (5 hunks)
  • apps/meteor/tests/e2e/retention-policy.spec.ts (2 hunks)
  • apps/meteor/tests/e2e/settings-int.spec.ts (1 hunks)
💤 Files with no reviewable changes (2)
  • apps/meteor/tests/e2e/page-objects/index.ts
  • apps/meteor/tests/e2e/page-objects/toastBar.ts
🧰 Additional context used
📓 Path-based instructions (4)
apps/meteor/tests/e2e/**/*.spec.ts

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

apps/meteor/tests/e2e/**/*.spec.ts: All Playwright test files must be located under apps/meteor/tests/e2e/ and use the .spec.ts extension (e.g., login.spec.ts)
Use descriptive test names that clearly communicate expected behavior
Use test.beforeAll() and test.afterAll() for setup and teardown
Use test.step() to organize complex test scenarios
Group related tests in the same file
Utilize Playwright fixtures (test, page, expect) consistently
Prefer web-first assertions (e.g., toBeVisible, toHaveText)
Use expect matchers (toEqual, toContain, toBeTruthy, toHaveLength, etc.) instead of assert statements
Maintain test isolation between test cases
Ensure a clean state for each test execution
Ensure tests run reliably in parallel without shared state conflicts

Files:

  • apps/meteor/tests/e2e/federation/tests/channel/private.spec.ts
  • apps/meteor/tests/e2e/channel-management.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts
  • apps/meteor/tests/e2e/retention-policy.spec.ts
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts
  • apps/meteor/tests/e2e/message-actions.spec.ts
  • apps/meteor/tests/e2e/enforce-2FA.spec.ts
  • apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts
  • apps/meteor/tests/e2e/account-profile.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts
  • apps/meteor/tests/e2e/settings-int.spec.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts
  • apps/meteor/tests/e2e/prune-messages.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-triggers.spec.ts
  • apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-transcript.spec.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts
apps/meteor/tests/e2e/**/*.{ts,tsx,js,jsx}

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

apps/meteor/tests/e2e/**/*.{ts,tsx,js,jsx}: Write concise, technical TypeScript/JavaScript with accurate typing
Follow DRY by extracting reusable logic into helper functions or page objects
Avoid code comments in the implementation

Files:

  • apps/meteor/tests/e2e/federation/tests/channel/private.spec.ts
  • apps/meteor/tests/e2e/channel-management.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts
  • apps/meteor/tests/e2e/retention-policy.spec.ts
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts
  • apps/meteor/tests/e2e/message-actions.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts
  • apps/meteor/tests/e2e/enforce-2FA.spec.ts
  • apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts
  • apps/meteor/tests/e2e/account-profile.spec.ts
  • apps/meteor/tests/e2e/page-objects/account.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts
  • apps/meteor/tests/e2e/settings-int.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts
  • apps/meteor/tests/e2e/prune-messages.spec.ts
  • apps/meteor/tests/e2e/page-objects/account-profile.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-triggers.spec.ts
  • apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-transcript.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-triggers.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts
  • apps/meteor/tests/e2e/page-objects/home-channel.ts
apps/meteor/tests/e2e/**/*.{ts,tsx}

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

apps/meteor/tests/e2e/**/*.{ts,tsx}: Avoid using page.locator(); prefer semantic locators like page.getByRole, page.getByLabel, page.getByText, and page.getByTitle
Store commonly used locators in variables/constants for reuse
Use page.waitFor() with specific conditions and avoid hardcoded timeouts
Implement proper wait strategies for dynamic content
Follow the Page Object Model pattern consistently

Files:

  • apps/meteor/tests/e2e/federation/tests/channel/private.spec.ts
  • apps/meteor/tests/e2e/channel-management.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts
  • apps/meteor/tests/e2e/retention-policy.spec.ts
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts
  • apps/meteor/tests/e2e/message-actions.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts
  • apps/meteor/tests/e2e/enforce-2FA.spec.ts
  • apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts
  • apps/meteor/tests/e2e/account-profile.spec.ts
  • apps/meteor/tests/e2e/page-objects/account.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts
  • apps/meteor/tests/e2e/settings-int.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts
  • apps/meteor/tests/e2e/prune-messages.spec.ts
  • apps/meteor/tests/e2e/page-objects/account-profile.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-triggers.spec.ts
  • apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-transcript.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-triggers.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts
  • apps/meteor/tests/e2e/page-objects/home-channel.ts
apps/meteor/tests/e2e/page-objects/**/*.ts

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

Utilize and place Page Object implementations under apps/meteor/tests/e2e/page-objects/

Files:

  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts
  • apps/meteor/tests/e2e/page-objects/account.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/page-objects/account-profile.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-triggers.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts
  • apps/meteor/tests/e2e/page-objects/home-channel.ts
🧠 Learnings (24)
📓 Common learnings
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/page-objects/**/*.ts : Utilize and place Page Object implementations under apps/meteor/tests/e2e/page-objects/
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,tsx} : Follow the Page Object Model pattern consistently
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Prefer web-first assertions (e.g., toBeVisible, toHaveText)

Applied to files:

  • apps/meteor/tests/e2e/federation/tests/channel/private.spec.ts
  • apps/meteor/tests/e2e/channel-management.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts
  • apps/meteor/tests/e2e/retention-policy.spec.ts
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts
  • apps/meteor/tests/e2e/message-actions.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts
  • apps/meteor/tests/e2e/enforce-2FA.spec.ts
  • apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts
  • apps/meteor/tests/e2e/account-profile.spec.ts
  • apps/meteor/tests/e2e/page-objects/account.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts
  • apps/meteor/tests/e2e/settings-int.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts
  • apps/meteor/tests/e2e/prune-messages.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-triggers.spec.ts
  • apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-transcript.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-triggers.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts
  • apps/meteor/tests/e2e/page-objects/home-channel.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Use expect matchers (toEqual, toContain, toBeTruthy, toHaveLength, etc.) instead of assert statements

Applied to files:

  • apps/meteor/tests/e2e/federation/tests/channel/private.spec.ts
  • apps/meteor/tests/e2e/channel-management.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts
  • apps/meteor/tests/e2e/retention-policy.spec.ts
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts
  • apps/meteor/tests/e2e/message-actions.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts
  • apps/meteor/tests/e2e/enforce-2FA.spec.ts
  • apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts
  • apps/meteor/tests/e2e/account-profile.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts
  • apps/meteor/tests/e2e/settings-int.spec.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts
  • apps/meteor/tests/e2e/prune-messages.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-triggers.spec.ts
  • apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-transcript.spec.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Use descriptive test names that clearly communicate expected behavior

Applied to files:

  • apps/meteor/tests/e2e/federation/tests/channel/private.spec.ts
  • apps/meteor/tests/e2e/channel-management.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts
  • apps/meteor/tests/e2e/retention-policy.spec.ts
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts
  • apps/meteor/tests/e2e/message-actions.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts
  • apps/meteor/tests/e2e/enforce-2FA.spec.ts
  • apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts
  • apps/meteor/tests/e2e/account-profile.spec.ts
  • apps/meteor/tests/e2e/page-objects/account.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts
  • apps/meteor/tests/e2e/settings-int.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts
  • apps/meteor/tests/e2e/prune-messages.spec.ts
  • apps/meteor/tests/e2e/page-objects/account-profile.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-triggers.spec.ts
  • apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-transcript.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-triggers.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts
  • apps/meteor/tests/e2e/page-objects/home-channel.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
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/federation/tests/channel/private.spec.ts
  • apps/meteor/tests/e2e/channel-management.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts
  • apps/meteor/tests/e2e/retention-policy.spec.ts
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts
  • apps/meteor/tests/e2e/enforce-2FA.spec.ts
  • apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts
  • apps/meteor/tests/e2e/account-profile.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts
  • apps/meteor/tests/e2e/settings-int.spec.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts
  • apps/meteor/tests/e2e/prune-messages.spec.ts
  • apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-transcript.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,tsx} : Implement proper wait strategies for dynamic content

Applied to files:

  • apps/meteor/tests/e2e/federation/tests/channel/private.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts
  • apps/meteor/tests/e2e/enforce-2FA.spec.ts
  • apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts
  • apps/meteor/tests/e2e/account-profile.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts
  • apps/meteor/tests/e2e/settings-int.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-transcript.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Maintain test isolation between test cases

Applied to files:

  • apps/meteor/tests/e2e/federation/tests/channel/private.spec.ts
  • apps/meteor/tests/e2e/channel-management.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts
  • apps/meteor/tests/e2e/retention-policy.spec.ts
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts
  • apps/meteor/tests/e2e/enforce-2FA.spec.ts
  • apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts
  • apps/meteor/tests/e2e/account-profile.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts
  • apps/meteor/tests/e2e/settings-int.spec.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts
  • apps/meteor/tests/e2e/prune-messages.spec.ts
  • apps/meteor/tests/e2e/page-objects/account-profile.ts
  • apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-transcript.spec.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Group related tests in the same file

Applied to files:

  • apps/meteor/tests/e2e/federation/tests/channel/private.spec.ts
  • apps/meteor/tests/e2e/account-profile.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts
  • apps/meteor/tests/e2e/page-objects/account-profile.ts
  • apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Utilize Playwright fixtures (test, page, expect) consistently

Applied to files:

  • apps/meteor/tests/e2e/federation/tests/channel/private.spec.ts
  • apps/meteor/tests/e2e/channel-management.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts
  • apps/meteor/tests/e2e/retention-policy.spec.ts
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts
  • apps/meteor/tests/e2e/message-actions.spec.ts
  • apps/meteor/tests/e2e/enforce-2FA.spec.ts
  • apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts
  • apps/meteor/tests/e2e/account-profile.spec.ts
  • apps/meteor/tests/e2e/page-objects/account.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts
  • apps/meteor/tests/e2e/settings-int.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments-ce.spec.ts
  • apps/meteor/tests/e2e/prune-messages.spec.ts
  • apps/meteor/tests/e2e/page-objects/account-profile.ts
  • apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-transcript.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-triggers.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts
  • apps/meteor/tests/e2e/page-objects/home-channel.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,tsx} : Use page.waitFor() with specific conditions and avoid hardcoded timeouts

Applied to files:

  • apps/meteor/tests/e2e/federation/tests/channel/private.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts
  • apps/meteor/tests/e2e/enforce-2FA.spec.ts
  • apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts
  • apps/meteor/tests/e2e/account-profile.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts
  • apps/meteor/tests/e2e/settings-int.spec.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/prune-messages.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-transcript.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Ensure a clean state for each test execution

Applied to files:

  • apps/meteor/tests/e2e/federation/tests/channel/private.spec.ts
  • apps/meteor/tests/e2e/channel-management.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts
  • apps/meteor/tests/e2e/retention-policy.spec.ts
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts
  • apps/meteor/tests/e2e/prune-messages.spec.ts
  • apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,tsx,js,jsx} : Avoid code comments in the implementation

Applied to files:

  • apps/meteor/tests/e2e/channel-management.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts
  • apps/meteor/tests/e2e/retention-policy.spec.ts
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts
  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts
  • apps/meteor/tests/e2e/message-actions.spec.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts
  • apps/meteor/tests/e2e/federation/tests/channel/public.spec.ts
  • apps/meteor/tests/e2e/account-profile.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts
  • apps/meteor/tests/e2e/prune-messages.spec.ts
  • apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-transcript.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts
  • apps/meteor/tests/e2e/page-objects/home-channel.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Use test.step() to organize complex test scenarios

Applied to files:

  • apps/meteor/tests/e2e/channel-management.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,tsx} : Follow the Page Object Model pattern consistently

Applied to files:

  • apps/meteor/tests/e2e/channel-management.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts
  • apps/meteor/tests/e2e/retention-policy.spec.ts
  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/dm.spec.ts
  • apps/meteor/tests/e2e/message-actions.spec.ts
  • apps/meteor/tests/e2e/enforce-2FA.spec.ts
  • apps/meteor/tests/e2e/page-objects/account.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments-ce.spec.ts
  • apps/meteor/tests/e2e/page-objects/account-profile.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-triggers.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts
  • apps/meteor/tests/e2e/page-objects/home-channel.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Use test.beforeAll() and test.afterAll() for setup and teardown

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts
  • apps/meteor/tests/e2e/retention-policy.spec.ts
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts
  • apps/meteor/tests/e2e/settings-int.spec.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/prune-messages.spec.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,tsx} : Avoid using page.locator(); prefer semantic locators like page.getByRole, page.getByLabel, page.getByText, and page.getByTitle

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-pdf-transcript.spec.ts
  • apps/meteor/tests/e2e/admin-users-role-management.spec.ts
  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts
  • apps/meteor/tests/e2e/page-objects/account.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments-ce.spec.ts
  • apps/meteor/tests/e2e/page-objects/account-profile.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-triggers.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts
  • apps/meteor/tests/e2e/page-objects/home-channel.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/page-objects/**/*.ts : Utilize and place Page Object implementations under apps/meteor/tests/e2e/page-objects/

Applied to files:

  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-transfer-to-another-agents.spec.ts
  • apps/meteor/tests/e2e/message-actions.spec.ts
  • apps/meteor/tests/e2e/page-objects/account.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments-ce.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts
  • apps/meteor/tests/e2e/page-objects/account-profile.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-triggers.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts
  • apps/meteor/tests/e2e/page-objects/home-channel.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,tsx} : Store commonly used locators in variables/constants for reuse

Applied to files:

  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/page-objects/account.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts
  • apps/meteor/tests/e2e/federation/page-objects/channel.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-triggers.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts
  • apps/meteor/tests/e2e/page-objects/home-channel.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,tsx,js,jsx} : Follow DRY by extracting reusable logic into helper functions or page objects

Applied to files:

  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/page-objects/account.ts
  • apps/meteor/tests/e2e/page-objects/admin.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-departaments-ce.spec.ts
  • apps/meteor/tests/e2e/prune-messages.spec.ts
  • apps/meteor/tests/e2e/page-objects/account-profile.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts
  • apps/meteor/tests/e2e/page-objects/home-channel.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/home-omnichannel.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : All Playwright test files must be located under apps/meteor/tests/e2e/ and use the .spec.ts extension (e.g., login.spec.ts)

Applied to files:

  • apps/meteor/tests/e2e/page-objects/home-omnichannel.ts
  • apps/meteor/tests/e2e/enforce-2FA.spec.ts
  • apps/meteor/tests/e2e/account-profile.spec.ts
  • apps/meteor/tests/e2e/page-objects/account.ts
  • apps/meteor/tests/e2e/delete-account.spec.ts
  • apps/meteor/tests/e2e/page-objects/account-profile.ts
  • apps/meteor/tests/e2e/admin-users-custom-fields.spec.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts
📚 Learning: 2025-11-04T16:49:19.107Z
Learnt from: ricardogarim
Repo: RocketChat/Rocket.Chat PR: 37377
File: apps/meteor/ee/server/hooks/federation/index.ts:86-88
Timestamp: 2025-11-04T16:49:19.107Z
Learning: In Rocket.Chat's federation system (apps/meteor/ee/server/hooks/federation/), permission checks follow two distinct patterns: (1) User-initiated federation actions (creating rooms, adding users to federated rooms, joining from invites) should throw MeteorError to inform users they lack 'access-federation' permission. (2) Remote server-initiated federation events should silently skip/ignore when users lack permission. The beforeAddUserToRoom hook only executes for local user-initiated actions, so throwing an error there is correct. Remote federation events are handled separately by the federation Matrix package with silent skipping logic.

Applied to files:

  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
📚 Learning: 2025-10-28T16:53:42.761Z
Learnt from: ricardogarim
Repo: RocketChat/Rocket.Chat PR: 37205
File: ee/packages/federation-matrix/src/FederationMatrix.ts:296-301
Timestamp: 2025-10-28T16:53:42.761Z
Learning: In the Rocket.Chat federation-matrix integration (ee/packages/federation-matrix/), the createRoom method from rocket.chat/federation-sdk will support a 4-argument signature (userId, roomName, visibility, displayName) in newer versions. Code using this 4-argument call is forward-compatible with planned library updates and should not be flagged as an error.

Applied to files:

  • apps/meteor/tests/e2e/federation/tests/ce-version/ce.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,tsx,js,jsx} : Write concise, technical TypeScript/JavaScript with accurate typing

Applied to files:

  • apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts
  • apps/meteor/tests/e2e/page-objects/account.ts
  • apps/meteor/tests/e2e/settings-int.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-otr.spec.ts
  • apps/meteor/tests/e2e/page-objects/account-profile.ts
  • apps/meteor/tests/e2e/page-objects/fragments/index.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/public.spec.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-send-transcript.spec.ts
  • apps/meteor/tests/e2e/messaging.spec.ts
  • apps/meteor/tests/e2e/e2e-encryption/e2ee-encrypted-channels.spec.ts
  • apps/meteor/tests/e2e/federation/tests/messaging/private.spec.ts
🧬 Code graph analysis (9)
apps/meteor/tests/e2e/page-objects/home-omnichannel.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts (1)
  • ToastMessages (5-29)
apps/meteor/tests/e2e/page-objects/account.ts (2)
packages/core-services/src/index.ts (1)
  • Account (161-161)
apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts (1)
  • ToastMessages (5-29)
apps/meteor/tests/e2e/page-objects/admin.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts (1)
  • ToastMessages (5-29)
apps/meteor/tests/e2e/page-objects/account-profile.ts (2)
packages/core-services/src/index.ts (1)
  • Account (161-161)
apps/meteor/tests/e2e/page-objects/fragments/account-sidenav.ts (1)
  • AccountSidenav (3-13)
apps/meteor/tests/e2e/page-objects/omnichannel-priorities.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts (1)
  • ToastMessages (5-29)
apps/meteor/tests/e2e/federation/page-objects/channel.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts (1)
  • ToastMessages (5-29)
apps/meteor/tests/e2e/page-objects/omnichannel-triggers.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts (1)
  • ToastMessages (5-29)
apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts (1)
  • ToastMessages (5-29)
apps/meteor/tests/e2e/page-objects/home-channel.ts (1)
apps/meteor/tests/e2e/page-objects/fragments/toast-messages.ts (1)
  • ToastMessages (5-29)

@ggazzo ggazzo added the stat: QA assured Means it has been tested and approved by a company insider label Nov 7, 2025
@dionisio-bot dionisio-bot bot added the stat: ready to merge PR tested and approved waiting for merge label Nov 7, 2025
@kodiakhq kodiakhq bot merged commit a3c22ff into develop Nov 7, 2025
113 of 116 checks passed
@kodiakhq kodiakhq bot deleted the test/purge-duplicated-toastbar branch November 7, 2025 21:36
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.

4 participants