Repository navigation
feat: add addon verifying the site slug has a configured source - #336
Merged
Merged
Conversation
mosherBT
requested review from
etiennelatendresse-optable
and removed request for
nyssaoptable
September 10, 2026 13:46
mosherBT
force-pushed
the
source-check-addon
branch
2 times, most recently
from
October 1, 2026 19:32
f1b9419 to
812179c
Compare
msw settles an aborted request with a 500 response rather than rejecting it, so the hanging handler never reached the timeout branch: fetch resolved, the verdict was cached as a hit and the call returned the probed site. Stub fetch so the request rejects with an AbortError when its signal fires, matching browser behaviour.
mosherBT
force-pushed
the
source-check-addon
branch
from
October 5, 2026 19:04
0121957 to
3dcd40c
Compare
etiennelatendresse-optable
approved these changes
Oct 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Multi-site publishers run pages on domains that were never provisioned as sources. Wrappers verify the site slug against the DCN before constructing the SDK and fall back to a default source so targeting still works with default enrichment; that check is copied per bundle.
What Changed
checkSourceExists({ site, defaultSite, node?, host? })inlib/addons/sourceCheck.ts— probes/config?purpose=check-source-existson the edge and returns the site to use:sitewhen the source exists,defaultSite(ordefault-sdk) when it does not. Verdict cached in sessionStorage, one probe per session. Any HTTP response counts as existing; only a network-level rejection marks a source missing, matching the wrapper behaviour.window.optable; the caller assigns it.How to Test
Unit tests cover: probe URL and caching on success, network-failure fallback, empty-defaultSite fallback, cached hit/miss short-circuits, custom host.
Notes