element-web-Github/playwright/e2e/read-receipts
R Midhun Suresh cf8b87fd14
Add tabs to the right panel (#12672)
* Create new method for header button behaviour

With the introduction of tabs, the behaviour of the header buttons is
changed as follows:
- Close any right panel if open
- Open the correct right panel if no panel was open before

The old method (and behaviour) is retained as showOrHidePhase.

* Implement tabs in the right panel

There are three tabs: Info, People and Threads

* Remove unwanted code from RoomSummaryCard

- Remove the menu item for opening the memberlist since that is now
  taken of by the tabs.
- Remove the close button

* Remove code for focusing close button from tac item

See https://github.com/matrix-org/matrix-react-sdk/pull/12410

There's no longer a close button to focus so we instead focus the thread
tab. This is done in RightPaneltabs.tsx so we just need to remove this
code.

* Introduce a room info icon to the header

This was previously present in the legacy room header but not in the new
header.

* BaseCard changes

- Adds id, ariaLabelledBy and role props to implement tab accessibility.
- Adds hideHeaderButtons prop to hide header buttons (think back and
  close buttons).
- Change confusing header rendering code:
  header is not rendered ONLY when no header is passed AND
  hideHeaderButtons is true.

* Refactor repeated code into function

Created a new function createSpaceScopeHeader which returns the
component if the room is a space room. Previously this code was
duplicated in every component that uses SpaceScopeHeader component.

* Pass BaseCard attributes and use helper function

Actually using the code from the last two commits

* Add, update and remove tests/screenshots/snapshots

* Fix distance between search bar and tabs

* Update compound

* Update screenshots/snapshots
2024-07-09 11:36:50 +00:00
..
editing-messages.spec.ts Take the Threads Activity Centre out of labs (#12439) 2024-04-29 15:30:19 +00:00
high-level.spec.ts Disable playwright tests for legacy crypto (#12662) 2024-06-24 10:30:59 +00:00
index.ts Add tabs to the right panel (#12672) 2024-07-09 11:36:50 +00:00
missing-referents.spec.ts Migrate most read-receipts tests from Cypress to Playwright (#11994) 2023-12-05 10:37:23 +00:00
new-messages.spec.ts Take the Threads Activity Centre out of labs (#12439) 2024-04-29 15:30:19 +00:00
reactions.spec.ts Take the Threads Activity Centre out of labs (#12439) 2024-04-29 15:30:19 +00:00
read-receipts.spec.ts Take the Threads Activity Centre out of labs (#12439) 2024-04-29 15:30:19 +00:00
readme.md Migrate most read-receipts tests from Cypress to Playwright (#11994) 2023-12-05 10:37:23 +00:00
redactions.spec.ts Take the Threads Activity Centre out of labs (#12439) 2024-04-29 15:30:19 +00:00

High Level Read Receipt Tests

Tips for writing these tests:

  • Break up your tests into the smallest test case possible. The purpose of these tests is to understand hard-to-find bugs, so small tests are necessary. We know that Playwright recommends combining tests together for performance, but that will frustrate our goals here. (We will need to find a different way to reduce CI time.)

  • Try to assert something after every action, to make sure it has completed. E.g.: markAsRead(room2); assertRead(room2); You should especially follow this rule if you are jumping to a different room or similar straight afterward.

  • Use assertStillRead() if you are asserting something is read when it was also read before. This waits a little while to make sure you're not getting a false positive.