element-web-Github/test/unit-tests
Robin d0cddc5b66
Feed events to widgets as they are decrypted (even if out of order) (#28376)
* Refactor feeding of events to widgets

This is a pure refactor with (hopefully) no behavior changes.

* Feed events to widgets as they are decrypted (even if out of order)

The code that feeds events to widgets tries to enforce that only events from the end of the timeline will be passed through. This is to prevent old, irrelevant events from being passed to widgets as the timeline is back-filled. However, since encrypted events need to be decrypted asynchronously, it's not possible to feed them to a widget in a strictly linear order without introducing some kind of blocking or unreliable delivery. This code has been dropping events when they're decrypted out of order, which we consider to be an undesirable behavior.

The solution provided here is that, to reflect the asynchronous nature of decryption, encrypted events that arrive at the end of the timeline will be fed to a widget whenever they finish decrypting, even if this means feeding them out of order. For now we're not aware of any widgets that care about knowing the exact order of events in the timeline, but if such a need reveals itself later, we can explore adding ordering information to this part of the widget API.

* Add braces to if
2024-11-08 14:35:47 +00:00
..
__snapshots__ Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
accessibility Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
actions/handlers Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
async-components Update to React 18 (#24763) 2024-10-21 13:50:06 +00:00
audio Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
autocomplete Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
components Handle authenticated media when downloading from ImageView (#28379) 2024-11-07 11:43:33 +00:00
contexts Migrate to stylistic 2024-10-18 14:34:01 +01:00
customisations Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
dispatcher Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
editor Fix markdown escaping wrongly passing html through (#28363) 2024-11-04 11:31:44 +00:00
events Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
hooks Update to React 18 (#24763) 2024-10-21 13:50:06 +00:00
i18n Prepare for repo merge 2024-10-15 11:35:21 +01:00
images Prepare for repo merge 2024-10-15 11:35:21 +01:00
integrations Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
models Migrate to stylistic 2024-10-18 14:34:01 +01:00
modules Iterate 2024-10-15 16:22:11 +01:00
notifications Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
settings Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
stores Feed events to widgets as they are decrypted (even if out of order) (#28376) 2024-11-08 14:35:47 +00:00
toasts First batch: remove deprecated calls on MatrixClient (#28207) 2024-10-21 12:53:39 +01:00
utils Switch secondary React trees to the createRoot API (#28296) 2024-11-06 12:44:54 +00:00
vector Flatten Vector-override components (#28346) 2024-11-05 15:41:00 +00:00
voice-broadcast Migrate to stylistic 2024-10-18 14:34:01 +01:00
widgets Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
Avatar-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
ContentMessages-test.ts Replace MatrixClient.isRoomEncrypted by MatrixClient.CryptoApi.isEncryptionEnabledInRoom in ContentMessages.ts (#28238) 2024-10-18 14:44:56 +00:00
createRoom-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
DecryptionFailureTracker-test.ts Add PostHog codes for trust requirement failures (#28292) 2024-10-28 13:16:48 +00:00
DeviceListener-test.ts Remove boilerplate around dispatcher and settings watchers (#28338) 2024-11-01 15:15:04 +00:00
email-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
favicon-test.ts
HtmlUtils-test.tsx Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
Image-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
KeyBindingsManager-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
languageHandler-test.tsx Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
LegacyCallHandler-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
Lifecycle-test.ts Fix test 2024-10-18 13:38:25 +01:00
linkify-matrix-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
Markdown-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
MatrixClientPeg-test.ts First batch: remove deprecated calls on MatrixClient (#28207) 2024-10-21 12:53:39 +01:00
MediaDeviceHandler-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
Modal-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
Notifier-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
PosthogAnalytics-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
PreferredRoomVersions-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
README.md
Reply-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
RoomNotifs-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
Rooms-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
ScalarAuthClient-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
SdkConfig-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
SecurityManager-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
SlashCommands-test.tsx Remove references to MatrixClient.crypto (#28204) 2024-10-17 08:50:44 +01:00
SlidingSyncManager-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
submit-rageshake-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
SupportedBrowser-test.ts Update browserslist (#28199) 2024-10-17 08:50:45 +01:00
Terms-test.tsx Migrate to stylistic 2024-10-18 14:34:01 +01:00
TestSdkContext.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
TextForEvent-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
theme-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
TimezoneHandler-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
Unread-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
UserActivity-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
useTopic-test.tsx Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00
WorkerManager-test.ts Merge matrix-react-sdk into element-web 2024-10-15 15:32:09 +01:00

Any UTs for vector-web layer components or functionality should go here. This used to contain the UTs for notifications before they got moved to react-sdk.