* 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
* 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
* 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>
* 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
* 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>
* 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
* 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
* 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!
* 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
* 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
* 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
* 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
* 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>
* 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