Page MenuHomePhabricator

[lib] Fix type of getInitialNotificationsEncryptedMessage when passed to resolveKeyserverSessionInvalidationUsingNativeCredentials
ClosedPublic

Authored by ashoat on Jan 18 2024, 12:47 AM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Sep 5, 11:53 PM
Unknown Object (File)
Thu, Sep 5, 11:53 PM
Unknown Object (File)
Thu, Sep 5, 11:53 PM
Unknown Object (File)
Thu, Sep 5, 11:52 PM
Unknown Object (File)
Aug 27 2024, 6:33 AM
Unknown Object (File)
Aug 9 2024, 12:02 PM
Unknown Object (File)
Aug 9 2024, 12:02 PM
Unknown Object (File)
Aug 6 2024, 10:37 PM
Subscribers
None

Details

Summary

When calling resolveKeyserverSessionInvalidationUsingNativeCredentials, we should pass a getInitialNotificationsEncryptedMessage that can take a InitialNotifMessageOptions param.

We have several callsites where we don't type this correctly. Flow didn't catch it for some reason.. I guess from Flow's perspective, a function that can optionally take 1 param is a valid thing to pass as a function that takes no params.

Depends on D10689

Test Plan

I tested this stack using the following procedure:

  1. I tested primarily on native
    1. I compiled a dev build and deployed it to an iOS simulator
    2. I created a brand new account on my local keyserver using the iOS app
    3. I ran Redux dev tools: cd native && yarn redux-devtools
    4. I added a 30s sleep at the start of resolveKeyserverSessionInvalidation
    5. I made KeyserverConnectionsHandler return null so that the socket wouldn’t automatically recover the session prior to my testing
    6. I killed the app
    7. I deleted all of the test user’s cookie
    8. I then opened the app again and navigated to a chat and sent two messages
    9. By following the Redux monitor, I was able to see that the keyserver session invalidation recovery was successful, and both messages were eventually sent after the 30s sleep concluded
  2. On web, we don’t support keyserver session invalidation. However, I tested to make sure that the web app still loaded after my changes

Diff Detail

Repository
rCOMM Comm
Lint
No Lint Coverage
Unit
No Test Coverage