Commit graph

93 commits

Author SHA1 Message Date
R Midhun Suresh
4c2efc3637
Playwright: Convert lazy-loading test to playwright (#11988)
* Implement method to wait for next sync

* Add timeline coded to app page

* Convert network plugin

* Add createBot fixture

* Convert lazy-loading test

* Remove cypress test

* Remove converted files

* Remove imports

* Fix date in copyright header

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix date in copyright header

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>

* Use proper method to send messages

* Fix sliding-sync test

* Address comments

* Move code to timeline

---------

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-19 08:36:54 +00:00
Richard van der Hoff
ffb4239103
Fix incorrect type annotation on cacheSecretStorageKey (#12068)
* Fix incorrect type annotation on `cacheSecretStorageKey`

`cacheSecretStorageKey` is passed a `SecretStorageKeyDescription` (aka a
`ISecretStorageKeyInfo`), and has done ever since
https://github.com/matrix-org/matrix-js-sdk/pull/1502.
`AddSecretStorageKeyOpts`is something else, though until recently some of the
properties on `AddSecretStorageKeyOpts` were incorrectly marked as optional, so
this went unnoticed since it was broken by
https://github.com/matrix-org/matrix-react-sdk/pull/11217.

* playwright has the same problem
2023-12-18 17:23:46 +00:00
R Midhun Suresh
7b3d5b5f21
Playwright: Convert sliding-sync test to playwright (#11989)
* Add method to send text message

* Add dockerUrl to HomeServerConfig

* Implement sliding sync proxy

* Convert tests

* Reload page after applying labs feature

* Remove converted files

* Remove timeout

* Remove sliding-sync

* Remove proxy import

* Remove reference to proxy

* wait for load

* Update date

* Convert enableLabsFeature to separate fixture

* Enable feature in fixture

* Skip over config and just write to local-storage

* Rename fixture

* Fix room header test

* Use type inference

* Override config instead of setting localstorage

* Set default language

* Always add labs feature

* Put this one test into a separate describe block

* Move labs lag within describe block
2023-12-16 10:01:26 +00:00
Michael Telatynski
f8d87f0ddc
Prevent Cypress typechecking react-sdk components without strict mode (#12053)
* Prevent Cypress typechecking react-sdk components without strict mode

This prevented us from switching to `forwardRef` in a bunch of places
due to it behaving different with & without strict mode.

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update global.d.ts

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-14 17:55:57 +00:00
Michael Telatynski
5104d53ddf
Migrate remaining crypto tests from Cypress to Playwright (#12021)
* Fix bot MatrixClient being set up multiple times

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate verification.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate crypto.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* delint

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add screenshot

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Record trace on-first-retry

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Don't start client when not needed

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add bot log prefixing

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Turns out we need these

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix crypto tests in rust crypto

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-12 08:55:29 +00:00
Valere
6360fe46f3
Fix bot logger (#12018) 2023-12-08 10:53:10 +00:00
Michael Telatynski
99b580d501
Migrate read-receipts.spec.ts from Cypress to Playwright (#11995)
* Migrate read-receipts.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update client.ts

* Serialise test message sending

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-05 13:24:10 +00:00
Michael Telatynski
eb6101cc1b
Migrate spaces.spec.ts from Cypress to Playwright (#11986)
* Remove old percy media query CSS

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Stabilise soft_logout.spec.ts

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update screenshots using `toMatchScreenshot` assertion with CSS overrides

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix accidentally commented test

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate spaces.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Delint

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add screenshots

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-04 11:56:48 +00:00
Michael Telatynski
8dcd13eb6d
Migrate email.spec.ts from Cypress to Playwright (#11920)
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
2023-11-23 09:09:32 +00:00
Richard van der Hoff
fc37f2d0e3
Remove workaround for rust-SDK bug (#11900)
Now that https://github.com/matrix-org/matrix-rust-sdk/issues/2193 is fixed, I
believe we can remove this
2023-11-20 12:49:42 +00:00
R Midhun Suresh
a3d34af80b
Remove more code 2023-11-09 00:26:57 +05:30
maheichyk
ea648753f9
Add e2e tests for the knocking feature (#11803)
* Add e2e tests for knocking

Signed-off-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>

* Add e2e tests for knocking into public knock rooms

Signed-off-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>

* Smaller changes

Signed-off-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>

* Remove room disappear check when forgotten due to exising issue

Signed-off-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>

---------

Signed-off-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>
Co-authored-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>
2023-11-07 14:00:24 +00:00
Richard van der Hoff
f09ec2cf26
Cypress: distinguish logs from bot clients (#11770)
When we instantiate a `MatrixClient` for a "bot" user, give it a custom
`Logger` which will add a prefix to any logs written by that client.
2023-10-18 10:52:07 +00:00
Florian Duros
067e338b4b
Cypress: Check that the new verified device is connected to key backup (#11686)
* Check that the new verified device is connected to key backup

* Review changes. Extract key backup verification in its own function and chang parameter order of bot `bootstrapSecretStorage` call.
2023-10-03 12:44:15 +00:00
Michael Telatynski
24b10a87c0
Switch to sorry-cypress (#11668) 2023-09-26 07:17:14 +01:00
Richard van der Hoff
e650397bac
Collect console.debug logs during cypress tests (#11478)
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 (#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
Michael Telatynski
99e80dd296
Consume more imports from matrix-js-sdk/src/matrix (#11449) 2023-08-23 09:04:25 +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
Michael Telatynski
0842559fb2
Simplify registration with email validation (#11398) 2023-08-15 16:14:53 +01: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
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
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
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
Kerry
eced103458
Fix: cypress findByTestId and percySnapshotElement do not work together (#10947)
* 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 (#11226)
* 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 (#11217)
* 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 (#11173)
* Cypress: `crypto.verification.request` -> `crypto.verificationRequestReceived`

matrix-org/matrix-js-sdk#3514 deprecated crypto.verification.request.

* Cypress: `beginKeyVerification` -> `startVerification`

matrix-org/matrix-js-sdk#3528 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 (#11153)
* Revert "skip broken analytics tests (#11144)"

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 (#11123)
* 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 (#11119)
* 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 (#10873)
* 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 (#10951)
* 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 (#10908)
* 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 (#10872) 2023-05-12 08:04:33 +00:00
Richard van der Hoff
9aade5a4d5
Improve cypress logging output (#10845)
... 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 (#10843)
* 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 (#10769) 2023-05-03 11:13:46 +00:00
Richard van der Hoff
e350b4c2c2
Deflakey threads cypress test (#10632)
`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 (#10619)
* 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 (#10544)
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 (#10446) 2023-03-29 08:47:05 +02:00
Suguru Hirahara
513eb0f83d
Improve Percy snapshot stability more - await inline spinners to vanish (#10452)
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 (#10239) 2023-02-27 09:16:49 +00:00
Michael Telatynski
26652138bd
Improve Percy stability by better scoping snapshots (#10207) 2023-02-23 16:57:48 +13:00
Michael Weimann
885d5098ab
Fix flaky test crypto/decryption-failure.spec.ts "Decryption Failure Bar" (#10092) 2023-02-07 08:45:13 +01:00
devonh
422802ea6d
Add credentials when calling bootstrapCrossSigning in Cypress tests (#9919) 2023-01-19 16:19:07 +01:00