Skip to content

Conversation

@codingLogan
Copy link
Collaborator

@codingLogan codingLogan commented Feb 6, 2026

Today the widget polls for members and jobs every 3 seconds. This adds some experimental configurability, and we'll use it to test different timings (2000ms and 1000ms polling)

Additions

New configurable polling time

Changes

switchMap is now exhaustMap in our pollers, which allows a request to finish before polling again when the interval is hit. This switch 😄 was made because if the polling is too fast the widget will not parse the response before making a new request... It would get stuck permanently in a request-but-no-response loop. (I observed this locally when testing an interval time that was too fast for the server)

pollMember used to be a basic utility function, this has been moved to a React Hook. This was done so that we can test the hook's behavior WITHOUT having to run the <Connecting/> component to test the full integration. It was passing along values that it grabbed directly from state, but now it's all done with the hook directly, and the hook has many tests that cover the existing and new behavior.

e2e test results

With another internal MR, this change passes existing e2e tests

       Spec                                              Tests  Passing  Failing  Pending  Skipped  
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✔  group-1/additionalProduct.cy.js          07:20        9        9        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-1/additionalProductNotSupport      00:16        1        1        -        -        - │
  │    ed.cy.js                                                                                    │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-1/externalLinkPopUp.cy.js          00:47        3        3        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-2/connectHappyPath.cy.js           04:12       11       11        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-2/connections.cy.js                03:44        6        6        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-2/iavConnectAccountNonDda.cy.      01:51        6        6        -        -        - │
  │    js                                                                                          │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-2/newUserWithNoAccounts.cy.js      00:12        1        1        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-2/postMessages.cy.js               00:08        1        1        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-3/comboJob.cy.js                   02:44        8        8        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-3/connectConfigTests.cy.js         01:14        5        5        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-3/globalNavTests.cy.js             02:39        7        7        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-3/jobError.cy.js                   00:19        1        1        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-3/lightDisclosure.cy.js            05:14       36       36        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-3/memberUseCases.cy.js             01:22        3        3        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-4/Search.cy.js                     01:17        8        8        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-4/connectSadPath.cy.js             02:18        7        7        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-4/mfaChallenges.cy.js              01:39        2        2        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  group-4/singleAccountSelect.cy.js        01:32        3        3        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        38:55      118      118        -        -        -  

Testing Instructions

When you load up the widget, pass in a value for milliseconds

experimentalFeatures={{
  ...
  memberPollingMilliseconds: 3000,
}}

emilysallstrom
emilysallstrom previously approved these changes Feb 6, 2026
Jameson13B
Jameson13B previously approved these changes Feb 9, 2026
Copy link
Collaborator

@Jameson13B Jameson13B left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great!

@codingLogan codingLogan dismissed stale reviews from Jameson13B and emilysallstrom via 63b656d February 9, 2026 21:51
@codingLogan codingLogan self-assigned this Feb 9, 2026
@codingLogan codingLogan merged commit 2604de3 into master Feb 9, 2026
6 checks passed
@github-actions
Copy link

github-actions bot commented Feb 9, 2026

🎉 This PR is included in version 2.18.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants