Commit Graph

360 Commits (4804adcef6a3b7e7d55f9567660484f8dec3f12c)

Author SHA1 Message Date
Andy Balaam 4804adcef6 Fix flaky receipt and redaction tests by pausing between message sends 2023-09-25 12:06:22 +01:00
Andy Balaam 1c2d604abe
Split the read-receipt tests into logical units (#11649)
* Split the read-receipt tests into logical units

* Move read-receipt docs into a readme file

* Provide doc comments for exported functions in read-receipt tests
2023-09-22 11:57:40 +00:00
Richard van der Hoff f60ba1c29d
Fix cypress test for events from unsigned devices (#11636) 2023-09-21 09:54:23 +00:00
Andy Balaam 8ac25758b3
Cypress tests for redacted messages in threads and thread roots (#11629)
* Tests for redacted messages in threads and thread roots

* Cache redacted events and enable tests that refer to them
2023-09-20 10:57:24 +00:00
Andy Balaam d46d4b3d04
More tests for reactions to messages in threads (#11612)
* Tests for redacting messages not increasing unreads

* Comment explaining tips for writing high level rr tests

* Test for restarting with a receipt pointing at a redacted thread root

* Two failing tests for counting correctly when a thread message was redacted

* Test for reading a thread containing an earlier redaction

* Failing tests for redacted messages in threads

* More tests for reactions to messages in threads

* Wait before looking for the thread list, to let the room settle
2023-09-19 13:29:04 +00:00
Richard van der Hoff 50ee43c4a5
Enable cypress tests for shields with rust crypto (#11589)
* Use new crypto-api for cross user verification

* update verification flow with new APIs

* Replace some calls to `checkUserTrust`

A start on https://github.com/vector-im/crypto-internal/issues/147

* Enable cypress tests

* update tests

* Delegate decisions on event shields to the js-sdk

* rerender after editing events

This is required because a transition from "valid event" to "unencrypted event"
no longer triggers a state change, so the component does not render
itself. Previously, this would be a transition from `verified:
E2EState.Normal` to `verified: null`.

* Update tests

* prettier

* Test coverage

* Enable cypress tests for shields with rust crypto

---------

Co-authored-by: Florian Duros <florianduros@element.io>
2023-09-18 21:34:24 +00:00
Richard van der Hoff cf2340bcad
Replace event verification logic with new code in js-sdk (#11528)
* Use new crypto-api for cross user verification

* update verification flow with new APIs

* Replace some calls to `checkUserTrust`

A start on https://github.com/vector-im/crypto-internal/issues/147

* Enable cypress tests

* update tests

* Delegate decisions on event shields to the js-sdk

* rerender after editing events

This is required because a transition from "valid event" to "unencrypted event"
no longer triggers a state change, so the component does not render
itself. Previously, this would be a transition from `verified:
E2EState.Normal` to `verified: null`.

* Update tests

* prettier

* Test coverage

---------

Co-authored-by: Florian Duros <florianduros@element.io>
2023-09-18 17:12:18 +00:00
Florian Duros 579b0dd10a
ElementR: Cross user verification (#11364)
The hard work has been done in previous PRs in the js-sdk, so this is now just a case of updating a few call sites to use the new APIs.
2023-09-18 17:34:00 +01:00
Andy Balaam e887c6d71f
Cypress tests for redactions in threads (#11594)
* Tests for redacting messages not increasing unreads

* Comment explaining tips for writing high level rr tests

* Test for restarting with a receipt pointing at a redacted thread root

* Two failing tests for counting correctly when a thread message was redacted

* Test for reading a thread containing an earlier redaction

* Failing tests for redacted messages in threads
2023-09-18 15:01:05 +00:00
Andy Balaam 5a3c32e26c
More assertions about threads being read (#11505) 2023-09-18 09:09:47 +00:00
RMidhunSuresh 610f9396bb
Fix broken tests 2023-09-14 16:55:14 +05:30
Andy Balaam b1f455eb2d
Assert that the thread is unread after an edit (#11504)
* Expand a thread reply test to be more explicit

* Add an assertion that the thread is read after I read it

* Assert that the thread is unread after an edit
2023-09-12 11:41:04 +00:00
Andy Balaam a4156add49
Tests for thread roots and reading history (#11588)
* Minor improvements to unread tests

* Test for reading an older message in a room

* Test for reading an old message in a thread

Also a mostly-trivial test for read status being preserved over
restarts.

* Give the reason for a failing test

* Fix a failing test by making it wait for a thread to be read

* More tests for thread roots
2023-09-12 03:22:04 +00:00
Andy Balaam a621dfa6c1
Expand a thread reply test to be more explicit (#11502) 2023-09-09 06:45:48 +00:00
Andy Balaam a4b861637f
Avoid using markAsRead where we don't need it (#11517)
* Avoid using markAsRead where we don't need it

* Review response
2023-09-08 13:07:26 +00:00
Andy Balaam 493d5083a8
Tests for reacting to thread roots (#11586) 2023-09-08 13:06:44 +00:00
Andy Balaam 728a3a751a
Tests for redactions in the main timeline (#11587) 2023-09-08 13:06:25 +00:00
Andy Balaam f1f8c6bf2c
Add waits in Spotlight Cypress tests, hoping this unflakes them (#11590)
Attempt to fix:

* https://github.com/vector-im/element-web/issues/26053
* https://github.com/vector-im/element-web/issues/26140
* https://github.com/vector-im/element-web/issues/26139
* https://github.com/vector-im/element-web/issues/26138
2023-09-08 12:08:21 +00:00
Andy Balaam 77b681eed9
Add a (failing for unrelated reasons) test for reading a thread root (#11534) 2023-09-08 00:32:16 +00:00
renovate[bot] 35a6595080
Update dependency cypress to v13 (#11570)
* Update dependency cypress to v13

* Update cypress.config.ts

* Fix test

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-09-07 15:07:39 +00:00
Richard van der Hoff 3818c1dc70
Cypress tests for event shields (#11525)
* Factor downloadKey out to `utils.ts`

* Add a new `describe` block for event shields

* create a beforeEach block

* Cypress tests for event shields
2023-09-05 11:11:10 +00:00
Andy Balaam f8ff95349a
Add a 'm.relates_to' to edits in receipt tests and disable failing tests (#11501)
* Add a 'm.relates_to' to edits in receipt tests

* Disable a test that fails with real edits

* Wait for the room to be read after we mark it as read

* Skip tests that are failing because of inconsistencies between local and CI behaviour
2023-09-04 16:08:03 +00:00
Richard van der Hoff 30d997e21c
Remove green "verified" bar for e2e events (#11496)
There is a little-known feature where, if you have verified a user (eg, via the
emoji game), then when you mouse-over a message that they sent, it gets a green
highlight.

We also show a brown bar sometimes, and according to the CSS there may be a
yellow bar too?

Very few people seem to know this exists, and even if you do know it exists
nobody seems to understand what exactly the various colours are supposed to be.

So, rather than porting this magic mystery feature to Rust Crypto, let's rip it
out.
2023-09-01 09:41:14 +00:00
Andy Balaam c7b0850ffe
Improve comments in unread tests (#11491) 2023-08-31 13:08:37 +00:00
Andy Balaam aaea42c626
Use a single synapse for all unread tests. (#11489)
Saves about 30 seconds per run.
2023-08-30 15:15:47 +00:00
Andy Balaam c6d9228f94
Fix flaky Cypress test cypress/e2e/widgets/stickers.spec.ts (#11440)
* Fix tests choosing the wrong room by matching on exact room name in viewRoomByName

* Allow either of the two different URLs for thumbnails in sticker test

* Find room by looking inside Rooms for something with the right text

* Check for the download URL of a thumbnail only, which will appear after the thumbnail 404s

* Click the title div instead of the contained span, to avoid clicking something potentially off-screen

* Find by label text because that works when room list is folded

* Find room by title because label text is different

* Attempt to allow opening room by name in all needed cases
2023-08-25 11:04:56 +00:00
Andy Balaam 5b290196cd
Fix read receipt tests with incorrect read counts (#11465)
These counts were transiently correct if the client was slow enough, so
the tests usually passed, but actually they were wrong.
2023-08-25 09:20:43 +00:00
Germain 09c5e06d12
Change avatar to use Compound implementation (#11448)
* Move avatar to new compound implementation

* Make space avatars square

* Remove reference to the avatar initial CSS class

* remove references to mx_BaseAvatar_image

* Fixe test suites

* Fix accessbility violations

* Add ConfirmUserActionDialog test

* Fix tests

* Add FacePile test

* Fix items clipping in members list

* Fix user info avatar sizing

* Fix tests
2023-08-24 03:48:35 +00:00
Andy Balaam b231bbb683
Disable some IRC audio player tests because they are flaky (#11456)
See https://github.com/vector-im/element-web/issues/24881
2023-08-23 10:00:50 +00:00
Michael Telatynski d5cacff6c3
Create more `action_*` common strings (#11438) 2023-08-23 11:57:22 +01:00
Michael Telatynski 99e80dd296
Consume more imports from matrix-js-sdk/src/matrix (#11449) 2023-08-23 09:04:25 +00:00
Michael Telatynski 4de315fb6c
Use Intl for names of languages (#11427)
* Use Intl for names of languages

* Tweak Intl language style from "American English" -> "US English"

* Update tests

* Fix tests

* Consolidate languageHandler-test files

* Improve coverage

* Consistent casing for languages in dropdown

* Update LanguageDropdown.tsx

* Delint & update snapshot

* Fix tests

* Improve coverage

`of` will fallback to the given code with fallback=code (default)
2023-08-22 14:07:16 +00:00
Michael Telatynski 3c52ba0c92
Use Intl to localise dates and times (#11422)
* Use Intl to generate better internationalised date formats

* Get `Yesterday` and `Today` from Intl also

* Correct capitalisation blunder

* Fix formatTime include weekday

* Iterate

* Fix tests

* use jest setSystemTime

* Discard changes to cypress/e2e/settings/general-user-settings-tab.spec.ts

* Discard changes to res/css/_components.pcss

* Discard changes to res/css/views/elements/_LanguageDropdown.pcss

* Discard changes to src/components/views/elements/LanguageDropdown.tsx

* Add docs & tests for getDaysArray & getMonthsArray

* Discard changes to test/components/structures/__snapshots__/MatrixChat-test.tsx.snap

* Consolidate consts

* Improve testing & documentation

* Update snapshot

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Iterate

* Clarify comments

* Update src/DateUtils.ts

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Specify hourCycle

* Discard changes to test/components/views/settings/devices/DeviceDetails-test.tsx

* Update comments

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2023-08-21 19:38:59 +00:00
Michael Telatynski dd6097c568
Polish & delabs `Exploring public spaces` feature (#11423)
* Iterate search public spaces UX

* Tweak iconography in spotlight

* Delabs `Exploring public spaces`

* Tweak msc3827 v1.4 support discovery

* i18n

* Delete stale test

* Fix tests

* Iterate

* Iterate PR based on review

* Improve types

* Add shortcut to search for public spaces to create space menu

* Update import

* Add org.matrix.msc3827.stable filtering

* Fix tests

* silence some errors
2023-08-21 09:39:20 +00:00
Andy Balaam 3d2d08b132
Support Podman style of accessing the host network in Cypress tests (#11421)
* Supply '--network slirp4netns:allow_host_loopback=true' argument when launching via Podman

This means that the host.containers.internal address will work as a way
to access the host machine's network from within the container in
Podman. This is eqivalent to '--add-host
host.docker.internal:host-gateway' in Docker.

* Log the locations of generated files for Cypress tests

* Use 'host.containers.internal' to access the host network when using Podman

* Support Podman in email Cypress tests too

* Restrict code that decides between Docker and Podman to run in Cypress plugins

Because it can't run in the browser - it needs to run a command line
command to find out.

* Move logic for HOST_DOCKER_INTERNAL into cfgDirFromTemplate
2023-08-18 14:40:17 +00:00
Richard van der Hoff 4f138ed041
Cypress tests for soft logout (#11402) 2023-08-16 07:40:09 +00:00
Michael Telatynski 0842559fb2
Simplify registration with email validation (#11398) 2023-08-15 16:14:53 +01:00
Michael Telatynski beafe686a9
Wire up more high level read receipt tests (#11408)
* Improve existing tests

* Wire up more tests

* Wire up more tests

* Wire up more tests

* Wire up more tests
2023-08-15 14:08:53 +00:00
Richard van der Hoff f65c6726c9
Add a cypress test for SSO login (#11401)
* Allow `startHomeserver` to take an options object

... so that we can add more options

* Add a Cypress test for SSO login
2023-08-14 11:08:12 +00:00
Travis Ralston 180fcaa70f
Support Matrix 1.1 (drop legacy r0 versions) (#9819)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-08-14 09:25:13 +01:00
Michael Telatynski f9e79fd5d6
Stabilise Percy snapshot of the user view (#11399) 2023-08-14 07:40:02 +00:00
Andy Balaam c55400de18
Tests for read/unread status (#11301)
* Add some fantasy tests

* Turn commented code into pretend-real code

* First pass at a list of all the cases we should test

* List test cases related to redactions

* Add testcases about paging up

* Add a case about notification counts

* More test cases related to replies, notifications, room list

* Iterate tests

* Wire up additional tests

* Wire up more tests

* Tidy

* Wire up more tests

* Wire up more tests

* Wire up more tests

* Wire up more tests

* Mute browser

* Silence electron warnings

* Iterate

* revert

* Wire up more tests

* Try to stabilise tests

* Try to stabilise tests

* Validate that the notification dot is missing as well as the count

* Skip a test that is failing for unknown reasons

* Use markAsRead in 'marking as read' test and add related test

* Fix incorrect comment

* Extract tests to their own suite

* Attempt to fix test

* Wire up more tests

* Wire up more tests

* Wire up more tests

* Wire up more tests

* Iterate

* Add comments

* Iterate

* Fix comments

* Update cypress/e2e/read-receipts/high-level.spec.ts

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

---------

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2023-08-10 12:59:01 +00:00
Kerry e0d498e338
Enable `jsx-a11y/click-events-have-key-events` eslint rule (#10362)
* enable "jsx-a11y/alt-text" lint rule

* enable "jsx-a11y/label-has-associated-control"

* make Spoilers keyboard accessible

* make invite reason keyboard accessible

* make invite suggestions keyboard accessible

* make avatar upload in space basic settings keyboard accessible

* ignore jsx-a11y/click-events-have-key-events issues in tests

* Update test expectation

---------

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-08-09 06:27:31 +00:00
Michael Telatynski 033c600fa2
Switch to importing @types/{event,partials} from main js-sdk export (#11369) 2023-08-08 10:12:12 +00:00
Michael Telatynski 93b66501f5
Make a11y related lint rules more strict (#11372) 2023-08-07 07:57:12 +00:00
Michael Telatynski 47877ba2da
Switch to importing matrix-js-sdk from its main export (#11360)
* Switch to importing TypedEventEmitter from main js-sdk export

* Switch to importing js-sdk/matrix in cypress

* Remove duplicated imports

* Fix lint:js-fix to run prettier last otherwise ESLint --fix may cause a mess

* Add lint rule

* Fix cypress-axe import

* Fix cypress-axe import
2023-08-03 12:56:30 +00:00
Germain 6ae7c033d5
Add feature flag 'feature_new_room_decoration_ui' and segrate legacy UI component (#11345)
* Move RoomHeader to LegacyRoomHeader

* Create new RoomHeader component
2023-08-01 07:32:53 +00:00
Florian Duros 202af87b2e
Enable cypress test about login with SSSS to run with rust-crypto (#11323) 2023-07-27 13:21:19 +00:00
renovate[bot] 5405c22db1
Update all non-major dependencies (#11329)
* Update all non-major dependencies

* Add isLocation to ComposerEvent analytics events

* Remove cypress-each as it is incompatible with modern typescript

* Roll back eslint-plugin-deprecate

* Remove stale comment

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-07-27 11:34:44 +00:00
Richard van der Hoff a47ee92094
Add `cy.viewRoomById` command (#11317)
... and use it to fix a racy composer test.

Fixes https://github.com/vector-im/element-web/issues/25527
2023-07-25 21:55:13 +00:00