-
-
Notifications
You must be signed in to change notification settings - Fork 827
Remove references to internal js-sdk type CryptoBackend
#12321
Conversation
|
||
// @ts-ignore `mockCrypto` is not a `CryptoBackend`, which is an internal type in the js-sdk |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This makes development harder as we won't get errors when the types for the provided fields are wrong (it'll tell you to cast to unknown first if sure) and are left to fend for our own, if we're not going to use the types then why have them in the first place. It can and will result in tests which end up testing things not conforming to interfaces, providing incorrect return types and the like. We should not be using ts-ignore anywhere if we can help it, I'm surprised it isn't linted against at this layer like we do at other layers
![image](https://private-user-images.githubusercontent.com/2403652/310653531-9de89fa4-1b85-4856-9a99-70cc455dfd21.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNDI4OTIsIm5iZiI6MTczOTA0MjU5MiwicGF0aCI6Ii8yNDAzNjUyLzMxMDY1MzUzMS05ZGU4OWZhNC0xYjg1LTQ4NTYtOWE5OS03MGNjNDU1ZGZkMjEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIwOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMDhUMTkyMzEyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MGRhZTVmNmIwY2ZkY2MzYzEyYzYyNzQ5NjdiZDgxOGYwYWE5NmY5OGE5NjcwMzY4ZGQ0NjdlZmNjMjhlNTQ3NiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.eAU43w-UozY4uyTNufKMfnTQ8ZLskNeNd3LV9QKPjec)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could use Parameters<typeof MatrixEvent["attemptDecryption"]>[0]
as an alternative for CryptoBackend
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if we're not going to use the types then why have them in the first place
This is an odd question. We have the type so that we can use it in the internals of js-sdk. The fact that a library defines a type in its internals does not necessarily mean that every application using that library can and should be using that type. Indeed, exposing those types makes a library way harder to use because it means application authors have to read through way more documentation to find the thing they are actually supposed to use.
The fundamental problem here is that we are poking into the innards of js-sdk in order to make a UTD event. Really, the problem is that we are calling MatrixEvent.attemptDecryption
, which is an internal method (and yes, it's parameter is an iternal type). But I don't really have any great ideas for avoiding that.
It can and will result in tests which end up testing things not conforming to interfaces, providing incorrect return types and the like.
Mayyyybe? The existing code doesn't actually implement CryptoBackend
; it just mocks out one function for it. Who is to say that attemptDecryption
doesn't care about any of the rest of the interface? And once you're mocking a function, its declared interface seems the least of your problems: what it actually does is far more important for whether the test is realistic.
I would strongly argue that having a @ts-ignore
in test code is a lesser evil than making CryptoBackend
part of js-sdk's public interface.
Anyway, I have applied your suggestion, which seems to solve the problem here.
test/test-utils/test-utils.ts
Outdated
|
||
// @ts-ignore `mockCrypto` is not a `CryptoBackend`, which is an internal type in the js-sdk |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as above
* Upgrade dependency to matrix-js-sdk@31.5.0-rc.0 * v3.94.0-rc.0 * Handle up/down as well as left/right for horizontal toolbars for improved a11y (matrix-org#12305) Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Remove references to internal js-sdk type `CryptoBackend` (matrix-org#12321) * Remove references to internal js-sdk type `CryptoBackend` * Use `Paramteters` to avoid `ts-ignore` * Use `strong` element to semantically denote visually emphasised content (matrix-org#12320) * Use `strong` element to semantically denote visually emphasised content Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update snapshots Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Add comment Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Remove unused slider component (matrix-org#12303) It is unused as of matrix-org#12246. I noticed this while working on matrix-org#12299. * Update matrix-org (matrix-org#11966) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update all non-major dependencies (matrix-org#12322) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update dependency stylelint-scss to v6.2.0 (matrix-org#12323) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update dependency @vector-im/compound-web to v3.1.3 (matrix-org#12281) * Update dependency @vector-im/compound-web to v3.1.3 * Update snapshots Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update snapshots Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update snapshots Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Fix TAC width due to compound update (matrix-org#12326) --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> Co-authored-by: Florian Duros <florianduros@element.io> * Call guest access link creation to join calls as a non registered user via the EC SPA (matrix-org#12259) * Add externall call link button if in public call room Signed-off-by: Timo K <toger5@hotmail.de> * Allow configuring a spa homeserver url. Signed-off-by: Timo K <toger5@hotmail.de> * temp Signed-off-by: Timo K <toger5@hotmail.de> * remove homeserver url Signed-off-by: Timo K <toger5@hotmail.de> * Add custom title to share dialog. So that we can use it as a "share call" dialog. Signed-off-by: Timo K <toger5@hotmail.de> * - rename config options - only show link button if a guest url is provided - share dialog custom Title - rename call share labels Signed-off-by: Timo K <toger5@hotmail.de> * rename to title_link Signed-off-by: Timo K <toger5@hotmail.de> * add tests for ShareDialog Signed-off-by: Timo K <toger5@hotmail.de> * add tests for share call button Signed-off-by: Timo K <toger5@hotmail.de> * review Signed-off-by: Timo K <toger5@hotmail.de> * remove comment Signed-off-by: Timo K <toger5@hotmail.de> * Update src/components/views/dialogs/ShareDialog.tsx Co-authored-by: David Baker <dbkr@users.noreply.github.com> --------- Signed-off-by: Timo K <toger5@hotmail.de> Co-authored-by: David Baker <dbkr@users.noreply.github.com> * Fix spotlight opening in TAC (matrix-org#12315) * Fix spotlight opening in TAC * Add tests * Remove `RovingTabIndexProvider` * Reset power selector on API failure to prevent state mismatch (matrix-org#12319) * Reset power selector on API failure to prevent state mismatch Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Allow onChange to be sync or async Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Add unmounted check Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Improve coverage Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Iterate Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Use correct push rule to evaluate room-wide mentions (matrix-org#12318) Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Improve Forward Dialog a11y by switching to roving tab index interactions (matrix-org#12306) * Improve Forward Dialog a11y by switching to roving tab index interactions Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Improve screen reader readout Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Improve screen reader readout Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Add tests Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * [create-pull-request] automated change (matrix-org#12330) Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com> * Reuse media content/info types from the js-sdk (matrix-org#12308) * TAC: Fix CSS & component typos (matrix-org#12333) * Fix CSS & component typo * Update snapshots * Element Call: fix widget shown while its still loading (`waitForIframeLoad=false`) (matrix-org#12292) * show loading spinner also if waitForIframeLoad = false Configure EC so it waits for the content loaded action !WARNING This breaks compatibility with the full mesh branch. I would like to discuss here if/when we can do that. Signed-off-by: Timo K <toger5@hotmail.de> * stop show loading screen on widget ready (instead of preparing) Signed-off-by: Timo K <toger5@hotmail.de> * wait until widget loading is over before comparing screenshots Signed-off-by: Timo K <toger5@hotmail.de> * fix waitForIFrame=true widgets Signed-off-by: Timo K <toger5@hotmail.de> * test Signed-off-by: Timo K <toger5@hotmail.de> * always start with loading true. + cleanup Signed-off-by: Timo K <toger5@hotmail.de> * simplify loading Signed-off-by: Timo K <toger5@hotmail.de> * update snapshots (start not in loading state for waitForIframe = true widgets) Signed-off-by: Timo K <toger5@hotmail.de> --------- Signed-off-by: Timo K <toger5@hotmail.de> * Upgrade dependency to matrix-js-sdk@31.5.0 * v3.94.0 * Resetting package fields for development * Reset matrix-js-sdk back to develop branch --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> Signed-off-by: Timo K <toger5@hotmail.de> Co-authored-by: RiotRobot <releases@riot.im> Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Co-authored-by: Robin <robin@robin.town> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Florian Duros <florianduros@element.io> Co-authored-by: Timo <16718859+toger5@users.noreply.github.com> Co-authored-by: David Baker <dbkr@users.noreply.github.com> Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
* Upgrade dependency to matrix-js-sdk@31.5.0-rc.0 * v3.94.0-rc.0 * Handle up/down as well as left/right for horizontal toolbars for improved a11y (matrix-org#12305) Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Remove references to internal js-sdk type `CryptoBackend` (matrix-org#12321) * Remove references to internal js-sdk type `CryptoBackend` * Use `Paramteters` to avoid `ts-ignore` * Use `strong` element to semantically denote visually emphasised content (matrix-org#12320) * Use `strong` element to semantically denote visually emphasised content Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update snapshots Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Add comment Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Remove unused slider component (matrix-org#12303) It is unused as of matrix-org#12246. I noticed this while working on matrix-org#12299. * Update matrix-org (matrix-org#11966) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update all non-major dependencies (matrix-org#12322) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update dependency stylelint-scss to v6.2.0 (matrix-org#12323) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update dependency @vector-im/compound-web to v3.1.3 (matrix-org#12281) * Update dependency @vector-im/compound-web to v3.1.3 * Update snapshots Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update snapshots Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update snapshots Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Fix TAC width due to compound update (matrix-org#12326) --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> Co-authored-by: Florian Duros <florianduros@element.io> * Call guest access link creation to join calls as a non registered user via the EC SPA (matrix-org#12259) * Add externall call link button if in public call room Signed-off-by: Timo K <toger5@hotmail.de> * Allow configuring a spa homeserver url. Signed-off-by: Timo K <toger5@hotmail.de> * temp Signed-off-by: Timo K <toger5@hotmail.de> * remove homeserver url Signed-off-by: Timo K <toger5@hotmail.de> * Add custom title to share dialog. So that we can use it as a "share call" dialog. Signed-off-by: Timo K <toger5@hotmail.de> * - rename config options - only show link button if a guest url is provided - share dialog custom Title - rename call share labels Signed-off-by: Timo K <toger5@hotmail.de> * rename to title_link Signed-off-by: Timo K <toger5@hotmail.de> * add tests for ShareDialog Signed-off-by: Timo K <toger5@hotmail.de> * add tests for share call button Signed-off-by: Timo K <toger5@hotmail.de> * review Signed-off-by: Timo K <toger5@hotmail.de> * remove comment Signed-off-by: Timo K <toger5@hotmail.de> * Update src/components/views/dialogs/ShareDialog.tsx Co-authored-by: David Baker <dbkr@users.noreply.github.com> --------- Signed-off-by: Timo K <toger5@hotmail.de> Co-authored-by: David Baker <dbkr@users.noreply.github.com> * Fix spotlight opening in TAC (matrix-org#12315) * Fix spotlight opening in TAC * Add tests * Remove `RovingTabIndexProvider` * Reset power selector on API failure to prevent state mismatch (matrix-org#12319) * Reset power selector on API failure to prevent state mismatch Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Allow onChange to be sync or async Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Add unmounted check Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Improve coverage Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Iterate Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Use correct push rule to evaluate room-wide mentions (matrix-org#12318) Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Improve Forward Dialog a11y by switching to roving tab index interactions (matrix-org#12306) * Improve Forward Dialog a11y by switching to roving tab index interactions Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Improve screen reader readout Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Improve screen reader readout Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Add tests Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * [create-pull-request] automated change (matrix-org#12330) Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com> * Reuse media content/info types from the js-sdk (matrix-org#12308) * TAC: Fix CSS & component typos (matrix-org#12333) * Fix CSS & component typo * Update snapshots * Element Call: fix widget shown while its still loading (`waitForIframeLoad=false`) (matrix-org#12292) * show loading spinner also if waitForIframeLoad = false Configure EC so it waits for the content loaded action !WARNING This breaks compatibility with the full mesh branch. I would like to discuss here if/when we can do that. Signed-off-by: Timo K <toger5@hotmail.de> * stop show loading screen on widget ready (instead of preparing) Signed-off-by: Timo K <toger5@hotmail.de> * wait until widget loading is over before comparing screenshots Signed-off-by: Timo K <toger5@hotmail.de> * fix waitForIFrame=true widgets Signed-off-by: Timo K <toger5@hotmail.de> * test Signed-off-by: Timo K <toger5@hotmail.de> * always start with loading true. + cleanup Signed-off-by: Timo K <toger5@hotmail.de> * simplify loading Signed-off-by: Timo K <toger5@hotmail.de> * update snapshots (start not in loading state for waitForIframe = true widgets) Signed-off-by: Timo K <toger5@hotmail.de> --------- Signed-off-by: Timo K <toger5@hotmail.de> * Upgrade dependency to matrix-js-sdk@31.5.0 * v3.94.0 * Resetting package fields for development * Reset matrix-js-sdk back to develop branch * Refine styles of menus, toasts, popovers, and modals (matrix-org#12332) * Refine styles of menus, toasts, popovers, and modals This is a reintroduction of matrix-org#12247, with the difference that modal styles have now been refreshed as well. * Restore the fixed heights of some dialogs * Fix formatting and flaky screenshot * Make EC widget theme reactive - Update widget url when the theme changes (matrix-org#12295) * update widget url when the theme changes Signed-off-by: Timo K <toger5@hotmail.de> * quick "make it EC specific" workaround proposal. Signed-off-by: Timo K <toger5@hotmail.de> * use `matches` Signed-off-by: Timo K <toger5@hotmail.de> * test coverage Signed-off-by: Timo K <toger5@hotmail.de> * more test coverage Signed-off-by: Timo K <toger5@hotmail.de> * fix jest Signed-off-by: Timo K <toger5@hotmail.de> * add tests for theme changes Signed-off-by: Timo K <toger5@hotmail.de> * update snapshots Signed-off-by: Timo K <toger5@hotmail.de> * test for theme update with non ec widget Signed-off-by: Timo K <toger5@hotmail.de> * add dark custom theme widget url Signed-off-by: Timo K <toger5@hotmail.de> * trigger conditions for theme cleanup Signed-off-by: Timo K <toger5@hotmail.de> * update tests using testId Signed-off-by: Timo K <toger5@hotmail.de> * use typed event emitter for theme watcher Signed-off-by: Timo K <toger5@hotmail.de> * simplify condition Signed-off-by: Timo K <toger5@hotmail.de> --------- Signed-off-by: Timo K <toger5@hotmail.de> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> Signed-off-by: Timo K <toger5@hotmail.de> Co-authored-by: RiotRobot <releases@riot.im> Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Co-authored-by: Robin <robin@robin.town> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Florian Duros <florianduros@element.io> Co-authored-by: Timo <16718859+toger5@users.noreply.github.com> Co-authored-by: David Baker <dbkr@users.noreply.github.com> Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
No description provided.