Commit graph

78 commits

Author SHA1 Message Date
Richard van der Hoff
e650397bac
Collect console.debug logs during cypress tests ()
In order for the logs collected by cypress to actually be useful, we really
need `cons:debug`.
2023-09-04 16:54:21 +00:00
Andy Balaam
c6d9228f94
Fix flaky Cypress test cypress/e2e/widgets/stickers.spec.ts ()
* 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
Michael Telatynski
99e80dd296
Consume more imports from matrix-js-sdk/src/matrix () 2023-08-23 09:04:25 +00:00
Andy Balaam
3d2d08b132
Support Podman style of accessing the host network in Cypress tests ()
* 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
Michael Telatynski
0842559fb2
Simplify registration with email validation () 2023-08-15 16:14:53 +01:00
Richard van der Hoff
f65c6726c9
Add a cypress test for SSO login ()
* 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) ()
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-08-14 09:25:13 +01:00
Andy Balaam
c55400de18
Tests for read/unread status ()
* 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
Michael Telatynski
93b66501f5
Make a11y related lint rules more strict () 2023-08-07 07:57:12 +00:00
Michael Telatynski
47877ba2da
Switch to importing matrix-js-sdk from its main export ()
* 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
renovate[bot]
5405c22db1
Update all non-major dependencies ()
* 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 ()
... 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
Kerry
eced103458
Fix: cypress findByTestId and percySnapshotElement do not work together ()
* check for testid in percySnapshotElement

* Update percy.ts

---------

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-07-14 13:28:22 +00:00
Richard van der Hoff
113b6301f8
Use cypress-terminal-report ()
* Use cypress-terminal-report

This cypress plugin gives nice console logs about what is happening: I hope it
will help us debug mysteriously failing tests.

In its default config, it only logs for failing tests.

* another anti-morgan hack

* Disable collection of `console.debug`

* `ctr:info` is not real
2023-07-11 15:10:13 +00:00
Florian Duros
21a1bdf7b7
Cypress: Add test to verify device after login ()
* Run cypress test without `cryptoCallbacks`

* Add security phrase test

* Add security key test

* Fix type import

* Move new test in `verification.spec.ts`

* The nest tests work with the new crypto

* Fix import yupe
2023-07-11 14:18:46 +00:00
Richard van der Hoff
1a75d5d869
Cypress: Use Rust crypto for the bot user in verification tests ()
* Cypress: `crypto.verification.request` -> `crypto.verificationRequestReceived`

 deprecated crypto.verification.request.

* Cypress: `beginKeyVerification` -> `startVerification`

 deprecated beginKeyVerification

* simplify `setupBotClient`

no functional change here, just combining the various `cy.wrap()`ed things into
a single async func

* Cypress: Use Rust crypto for the bot user in verification tests

We can already start using the Rust crypto implementation for the "bot" user in
the verification tests!
2023-07-07 16:56:53 +00:00
Kerry
3de2bcdc1a
Fix: cypress toasts/analytics-toast.spec.ts failures ()
* Revert "skip broken analytics tests ()"

This reverts commit 83ee1946ea.

* reset window notification permission between tets
2023-06-28 21:02:58 +00:00
Richard van der Hoff
35f8c525aa
Cypress test for incoming verification requests ()
* Cypress: move verification tests to their own file

* Remove redundant cypress test

This does nothing that the verification test doesn't do better.

* Factor `beginKeyVerification` call out of `doTwoWaySasVerification`

... for more flexibility. This allows us to have tests where the other side
picks the verification method.

* Cypress test for incoming verification requests
2023-06-22 09:43:49 +00:00
Florian Duros
b84a230d58
Cypress: Run setting up secure key backup should work test for both verified and unverified devices ()
* Add `cypress-each` dev dependencies

* Run `setting up secure key backup should work` test for both verified and unverified device.
2023-06-20 15:27:18 +00:00
Richard van der Hoff
2571f54e8b
Cypress: skip tests known to fail when using Rust crypto ()
* Cypress: skip tests known to fail when using Rust crypto

... which means we can then run the cypress test suite against Element Web R to
check we aren't introducing regressions.

* Update cypress/e2e/register/register.spec.ts

* Use env var to detect rust crypto

* Hoist `skipIfRustCrypto` call earlier
2023-05-24 09:50:05 +00:00
Richard van der Hoff
3623643248
Cypress: allow enabling Rust Crypto via env var ()
* Cypress: allow enabling Rust Crypto via env var

* prettify
2023-05-19 13:55:13 +00:00
Richard van der Hoff
81df8a3d2b
Add intercept of config.json ()
* Add intercept of `config.json`

To help make sure that we run our tests against a known config, rather than
accidentally making requests to `matrix.org`.

* Remove now-redundant stubs of matrix.org files

Now that we intercept config.json, all this stuff is redundant.

* Reinstate fixture which is actually used

Turns out this is used after all

* Add a `map_style_url`

* disable failing axe check
2023-05-16 12:15:20 +00:00
Andy Balaam
415fcde5e8
Cypress tests for read receipts, threaded and unthreaded () 2023-05-12 08:04:33 +00:00
Richard van der Hoff
9aade5a4d5
Improve cypress logging output ()
... by grouping together the output from some custom commands.
2023-05-11 10:46:50 +00:00
Richard van der Hoff
3c32ad7cab
Fix CSP problems due to cypress-axe ()
* Fix CSP problems due to cypress-axe

Rewrite `injectAxe` to use a script tag instead of an `eval`.

* remove gha workflow hack
2023-05-11 10:31:09 +00:00
Andy Balaam
d494b45910
Test for element-web#24629 - read receipts on main and unthreaded don't clash () 2023-05-03 11:13:46 +00:00
Richard van der Hoff
e350b4c2c2
Deflakey threads cypress test ()
`inviteUser` is asynchronous so you can't just call it and plough straight on.

Also some logging improvements which helped debug this
2023-04-18 10:17:46 +00:00
Suguru Hirahara
4c0efc5e68
Update Cypress test files under support/ directory - use Cypress Testing Library ()
* Update support files - use Cypress Testing Library

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Fix openMessageComposerOptions()

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

---------

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2023-04-17 07:37:49 +00:00
Suguru Hirahara
5316bb58f7
Remove find.ts and custom commands on Cypress Testing Library ()
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2023-04-12 07:26:12 +00:00
Michael Weimann
7cb90d0f78
Add Cypress Testing Library () 2023-03-29 08:47:05 +02:00
Suguru Hirahara
513eb0f83d
Improve Percy snapshot stability more - await inline spinners to vanish ()
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2023-03-27 18:02:34 +00:00
Michael Telatyński
c22971e542
Improve percy snapshot stability () 2023-02-27 09:16:49 +00:00
Michael Telatynski
26652138bd
Improve Percy stability by better scoping snapshots () 2023-02-23 16:57:48 +13:00
Michael Weimann
885d5098ab
Fix flaky test crypto/decryption-failure.spec.ts "Decryption Failure Bar" () 2023-02-07 08:45:13 +01:00
devonh
422802ea6d
Add credentials when calling bootstrapCrossSigning in Cypress tests () 2023-01-19 16:19:07 +01:00
Richard van der Hoff
575508ae15
Rewrite cy.all implementation ()
The previous implementation was indecipherable, and didn't actually work.
2023-01-11 18:12:38 +00:00
devonh
79033eb034
Add dendrite support to cypress tests ()
* Minimum hacks required to run cypress tests with dendrite

* Remove wget hack since dendrite containers now have curl

* Add basic dendritedocker plugin & hack into login spec for testing

* Add generic HomeserverInstance interface

* Add env var to configure which homeserver to use

* Remove synapse specific homeserver support api

* Update the rest of the tests to use HomeserverInstance

* Update cypress docs to reference new homeserver abstraction

* Fix formatting issues

* Change dendrite to use main branch container
2023-01-10 16:29:56 -07:00
Travis Ralston
6d6adc8c02
Use identity server v2 api instead of v1 ()
See js-sdk change.
2023-01-03 00:59:07 -07:00
Richard van der Hoff
ad7c002f4d Merge remote-tracking branch 'origin/develop' into rav/edited_events 2022-12-20 11:20:03 +00:00
Richard van der Hoff
ddfa627ce6
Cypress: add a way to specify the prefix for userIDs ()
This helps a lot with debugging tests where there are multiple users.
2022-12-19 13:12:01 +00:00
Richard van der Hoff
e3f591e7d2 Return the password from getBot
... so that we can use it to log in for a second time
2022-12-17 23:52:55 +00:00
Faye Duxovni
4724506320
Improve decryption error UI by consolidating error messages and providing instructions when possible ()
* Improve decryption error UI by consolidating error messages and providing instructions when possible

* Fix TS strict errors

* Rename .scss to .pcss

* Avoid accessing clipboard, Cypress doesn't like it

* Display DecryptionFailureBar alongside other AuxPanel bars

* Add comments

* Add small margin off-screen for visible decryption failures

* Fix some more TS strict errors

* Add unit tests for DecryptionFailureBar

* Add button to resend key requests manually

* Remove references to matrix-js-sdk crypto internals

* Add hysteresis to visible decryption failures

* Add comment

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

* Add comment

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

* Don't create empty div if we're not showing resend requests button

* cancel updateSessions on unmount

* Update unit tests

* Fix lint and implicit any

* Simplify visible event bounds checking

* Adjust cypress test descriptions

* Add percy snapshots

* Update src/components/structures/TimelinePanel.tsx

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

* Add comments on TimelinePanel IState

* comment

* Add names to percy snapshots

* Show Resend Key Requests button when there are sessions that haven't already been requested via this bar

* We no longer request keys from senders

* update i18n

* update expected text in cypress test

* don't download keys ourselves, update device info in response to updates from client

* fix ts strict errors

* visibledecryptionfailures undefined handling

* Fix implicitAny errors

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-12-15 17:24:33 +00:00
Michael Weimann
526645c791
Apply prettier formatting 2022-12-12 12:24:14 +01:00
Richard van der Hoff
4b3705d3f0
Add a test for verifying without existing DM ()
A regression test for https://github.com/vector-im/element-web/issues/23819.
2022-11-30 13:03:47 +00:00
Michael Telatynski
7136c23aa7
Stub out calls to vector.im and matrix.org in Cypress () 2022-11-30 11:16:37 +00:00
Travis Ralston
6fe8744e4d
Remove performance metrics from cypress ()
They are unfortunately unreliable and have been broken since June anyways.
2022-10-20 00:52:17 -06:00
Michael Telatynski
2cf8a9a2f7
Stabilise Cypress login tests ()
* Attempt to stabilise login tests

* More stability

* Stabilise s'more

* don't clear LS as we rely on it for enablements

* Add small delay

* Iterate

* Update login.ts
2022-10-18 17:07:23 +01:00
Kerry
28bd58e551
Device manager - cypress test ()
* test new device manager

* Update cypress/e2e/settings/device-management.spec.ts

Co-authored-by: Travis Ralston <travisr@matrix.org>

Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-10-13 07:27:48 +00:00
Michael Telatynski
8b54be6f48
Move from browser-request to fetch () 2022-10-12 18:59:07 +01:00
Kerry
13458250bc
Cypress - stabilise "creating a DM should work" test ()
* better error message for failed bot room join

* wait for room invite before attempting bot join

* remove sent receipt assertion

* lint

* remove debug formatting

* use RoomMemberEvent enum from window
2022-10-07 13:34:28 +02:00