• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Alan-Jowett / sonde / 26043264211
82%

Build:
DEFAULT BRANCH: main
Ran 18 May 2026 03:39PM UTC
Jobs 1
Files 126
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 May 2026 03:29PM UTC coverage: 82.941% (-0.02%) from 82.957%
26043264211

push

github

web-flow
Fix MSAL popup hash conflict: skip init() in popup windows (#950)

* Fix MSAL hash conflict: clear routing hash before MSAL init

MSAL 2.x reads window.location.hash during both construction and
handleRedirectPromise(). Passing an empty string parameter does not
prevent this. The definitive fix: temporarily clear the routing hash
from the URL via history.replaceState() before creating the MSAL
instance, then restore it after handleRedirectPromise() completes.

Auth hashes (containing code=, error=, access_token=) are left in
place for MSAL to process normally.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix MSAL popup hash conflict: skip init() in popup windows

Root cause: loginPopup() opens a popup that loads the SPA. Our init()
runs in the popup and sets location.hash = 'dashboard', overwriting
the auth response hash before the parent window can read it. MSAL's
PopupHandler.monitorPopupForHash then finds '#dashboard' instead of
auth params, causing hash_does_not_contain_known_properties.

Fix: detect the popup context via window.opener and skip init() so
the auth hash is preserved for the parent window to consume.

Also reverts the history.replaceState workaround from #948 which
was addressing the wrong layer of the problem.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix MSAL auth conflict: replace hash-based routing with in-memory tab state

The SPA used location.hash for tab navigation, which conflicted with
MSAL's popup auth flow (MSAL also uses the URL hash fragment to pass
auth tokens back to the parent window). This caused repeated
hash_does_not_contain_known_properties errors and required multiple
workaround patches (#947, #948).

Replace hash-based routing entirely with in-memory state driven by
APP.activeTab. Tab clicks now call setActiveTab() and
enderActiveTab() directly. This eliminates the conflict at its root
rather than patching around each symptom.

Changes:
- Remove all lo... (continued)

35161 of 42393 relevant lines covered (82.94%)

256.34 hits per line

Coverage Regressions

Lines Coverage ∆ File
7
80.78
-0.29% crates/sonde-azure-companion/src/main.rs
Jobs
ID Job ID Ran Files Coverage
1 26043264211.1 18 May 2026 03:39PM UTC 126
82.94
GitHub Action Run
Source Files on build 26043264211
  • Tree
  • List 126
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26043264211
  • 61336578 on github
  • Prev Build on main (#26016228387)
  • Next Build on main (#26054959257)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc