riot-web/cypress/e2e/read-receipts
Andy Balaam 8b7f49e74e
Rewrite doesRoomOrThreadHaveUnreadMessages to use the receipt rewrite from js-sdk (#11903)
* Rewrite doesRoomOrThreadHaveUnreadMessages to use the receipt rewrite from js-sdk

* Remove unit tests that rely on receipt timestamps

Previously, if we found a receipt for an unknown event, we would use the
receipt timestamp and declare all events before that time to be read.
Now, we ignore such "dangling" receipts until we find the event they
refer to.

This new behaviour is more correct, but does lead to more messages being
considered unread.

This commit deletes tests that checked for the old behaviour.

* Check for a missing thread in determineUnreadState

* Fix incorrect way to find room timeline

* More realistic test setup to support new receipt code

* Update snapshot to expect a room to be unread when there are no receipts

* Formatting fixes

* Update snapshot to show menu and notif button

* Disable some flaky tests

* Disable some flaky tests

* Fix test to make a threaded receipt for an event that is actually in the thread

---------

Co-authored-by: Florian Duros <florianduros@element.io>
Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
2023-11-29 13:36:52 +00:00
..
editing-messages.spec.ts Rewrite doesRoomOrThreadHaveUnreadMessages to use the receipt rewrite from js-sdk (#11903) 2023-11-29 13:36:52 +00:00
high-level.spec.ts Rewrite doesRoomOrThreadHaveUnreadMessages to use the receipt rewrite from js-sdk (#11903) 2023-11-29 13:36:52 +00:00
missing-referents.spec.ts
new-messages.spec.ts Rewrite doesRoomOrThreadHaveUnreadMessages to use the receipt rewrite from js-sdk (#11903) 2023-11-29 13:36:52 +00:00
reactions.spec.ts
read-receipts-utils.ts
read-receipts.spec.ts
readme.md
redactions.spec.ts

readme.md

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 Cypress 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 afterwards.

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