Commit Graph

67 Commits (dcd8f9a16f93c1f83d7914607a10f13381f19214)

Author SHA1 Message Date
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
Richard van der Hoff 575508ae15
Rewrite `cy.all` implementation (#9892)
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 (#9884)
* 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 (#9818)
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 (#9787)
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 (#9544)
* 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 (#9619)
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 (#9652) 2022-11-30 11:16:37 +00:00
Travis Ralston 6fe8744e4d
Remove performance metrics from cypress (#9467)
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 (#9446)
* 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 (#9398)
* 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` (#9345) 2022-10-12 18:59:07 +01:00
Kerry 13458250bc
Cypress - stabilise "creating a DM should work" test (#9373)
* 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
Kerry bf662851f6
Cypress - increase initial app load timeout to 30s (#9361) 2022-10-07 09:35:32 +00:00
Michael Weimann e7e7041653
Wrap cypress set settings promise (#9287) 2022-09-16 11:55:51 +01:00
kegsay a215027c6b
Implement MSC3575: Sliding Sync (#8328)
* Add labs flag for sliding sync; add sliding_sync_proxy_url to config.json

* Disable the labs toggle if sliding_sync_proxy_url is not set

* Do validation checks on the sliding sync proxy URL before enabling it in Labs

* Enable sliding sync and add SlidingSyncManager

* Get room subscriptions working

* Hijack renderSublists in sliding sync mode

* Add support for sorting alphabetically/recency and room name filters

* Filter out tombstoned rooms; start adding show more logic

list ranges update but the UI doesn't

* update the UI when the list is updated

* bugfix: make sure the list sorts numerically

* Get invites transitioning correctly

* Force enable sliding sync and labs for now

* Linting

* Disable spotlight search

* Initial cypress plugins for Sliding Sync Proxy

* Use --rm when running Synapse in Docker for Cypress tests

* Update src/MatrixClientPeg.ts

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

* Update src/components/views/rooms/RoomSublist.tsx

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

* Update src/settings/controllers/SlidingSyncController.ts

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

* Update src/components/views/rooms/RoomSublist.tsx

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

* WIP add room searching to spotlight search

* Only read sliding sync results when there is a result, else use the local cache

* Use feature_sliding_sync not slidingSync

* Some review comments

* More review comments

* Use RoomViewStore to set room subscriptions

* Comment why any

* Update src/components/views/rooms/RoomSublist.tsx

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

* Fix cypress docker abstraction

* Iterate sliding sync proxy support

* Stash mostly functional test

* Update sliding sync proxy image

* i18n

* Add support for spaces; use list ID -> index mappings

- Mappings are more reusable and easier to understand than
  racing for index positions.
- Register for all spaces immediately on startup.

* When the active space is updated, update the list registration

* Set spaces filter in the correct place

* Skeleton placeholder whilst loading the space

* Filter out spaces from the room list

* Use the new txn_id promises

* Ensure we actually resolve list registrations

* Fix matrix-org/sliding-sync#30: don't show tombstoned search results

* Remove unused imports

* Add SYNCV3_SECRET to proxy to ensure it starts up; correct aliases for SS test

* Add another basic sliding sync e2e test

* Unbreak netlify

* Add more logging for debugging duplicate rooms

* If sliding sync is enabled, always use the rooms result even if it's empty

* Drop-in copy of RoomListStore for sliding sync

* Remove conditionals from RoomListStore - we have SlidingRoomListStore now

* WIP SlidingRoomListStore

* Add most sliding sync logic to SlidingRoomListStore

Still lots of logic in RoomSublist. Broken things:
 - Join count is wrong completely.
 - No skeleton placeholder when switching spaces.

* Migrate joined count to SS RLS

* Reinstate the skeleton UI when the list is loading

* linting

* Add support for sticky rooms based on the currently active room

* Add a bunch of passing SS E2E tests; some WIP

* Unbreak build from git merge

* Suppress unread indicators in sliding sync mode

* Add regression test for https://github.com/matrix-org/sliding-sync/issues/28

* Add invite test flows; show the invite list

The refactor to SS RLS removed the invite list entirely.

* Remove show more click as it wasn't the bug

* Linting and i18n

* only enable SS by default on netlify

* Jest fixes; merge conflict fixes; remove debug logging; use right sort enum values

* Actually fix jest tests

* Add support for favourites and low priority

* Bump sliding sync version

* Update sliding sync labs to be user configurable

* delint

* To disable SS or change proxy URL the user has to log out

* Review comments

* Linting

* Apply suggestions from code review

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

* Update src/stores/room-list/SlidingRoomListStore.ts

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

* Review comments

* Add issue link for TODO markers

* Linting

* Apply suggestions from code review

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

* More review comments

* More review comments

* stricter types

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-09-07 15:42:39 +00:00
Michael Telatynski fdde6b1428
Cypress test stability improvements (#9156)
* Make cypress hidden event test more reliable

* Make timeline tests more stable
2022-08-10 09:40:17 +01:00
Travis Ralston 32478db57e
Migrate the hidden read receipts flag to new "send read receipts" option (#9141)
* Migrate the hidden read receipts flag to new "send read receipts" option

For safety.

* Appease linter & ignore guests

* `void`
2022-08-08 13:48:28 -06:00
Michael Telatynski d5db131eef
Spike AXE A11Y testing in Cypress (#9111)
* Spike AXE A11Y testing in Cypress

* Fix NewRoomIntro breaking html/aria list rules

* Fix HeaderButtons breaking aria role semantics rules

* missing type

* Switch left panel from aside to nav and include space panel

* Give the page a main heading of the room name when viewing a room

* Use header landmark on RoomHeader

* Improve aria attributes on composer when autocomplete is closed

* Fix aria-owns on RoomHeader

* Give Spinner an aria role

* Give server picker help button an aria label

* Improve auth aria attributes and semantics

* Improve heading semantics in use case selection screen

* Fix autocomplete attribute to be valid

* Fix heading semantics on login page

* Improve Cypress axe testing

* Add axe tests

* Stop synapse after the timeline tests

* Await spinners to fade before percy snapshotting timeline tests

* Improve naming of plugin

* Update snapshots

* Fix accidental heading change

* Fix double synapse stoppage

* Fix Cypress timeline avatar assertions to be DPI agnostic

* Fix aria attributes on date separators

* delint

* Update snapshots

* Revert style change

* Skip redundant call
2022-08-01 08:31:14 +01:00
Šimon Brandner b4b146f551
Show a back button when viewing a space member (#9095) 2022-07-25 11:46:19 +00:00
Kerry be0f4a1fe5
add cypress test case for simple poll flow (#9073)
* add cypress test case for simple poll flow

* tidy comments

* actually correct comments

* add polls x thread test

* tweak comments

* pr improvements
2022-07-20 07:56:52 +00:00
Michael Telatynski 42ff9d6dc8
Move Lazy Loading tests from Puppeteer to Cypress (#8982)
* Remove Puppeteer Lazy Loading tests

* Remove Puppeteer Lazy Loading tests

* Remove Puppeteer Lazy Loading tests

* Stash lazy loading cypress tests

* Stash lazy loading cypress tests

* Update cypress-real-events

* Stash offline-less test

* Add offline/online'ing
2022-07-18 13:16:44 +01:00
Michael Telatynski 7fb48d24e4
Upgrade to Cypress 10 (#9008)
* Upgrade to Cypress 10

* Remove stale comment
2022-07-08 13:14:13 +01:00
Andy Balaam 08c607718d
Attempt to set the language when setting up Cypress tests (#8964) 2022-07-05 11:14:24 +01:00