fix(tests): filter PostHog telemetry from fetch mocks - #3353

Closed
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests
Closed

fix(tests): filter PostHog telemetry from fetch mocks#3353
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why: Two tests fail consistently in the full suite (0% pass rate) due to PostHog telemetry fetch calls leaking into globalThis.fetch mocks, corrupting callCount-based response routing.

Summary

  • hetzner-cov.test.ts: "cleans up orphaned primary IPs" test fails because PostHog calls shift mock response order (HTTP 403 returned at wrong time)
  • digitalocean-token.test.ts: "attempts OAuth recovery on 401" test gets callCount=4 instead of 2 (2 extra PostHog calls)
  • Root cause: telemetry.test.ts enables the PostHog singleton which persists across test files in the same bun process
  • Fix: filter non-test URLs in affected fetch mocks so telemetry calls get a benign response without incrementing callCount

Test plan

  • Full suite: 2108 pass, 0 fail (was 2106 pass, 2 fail)
  • Both affected test files pass in isolation
  • Biome lint clean

-- spawn-refactor/test-engineer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Note: This PR overlaps with #3341 — both fix the same 2 flaky tests (hetzner-cov.test.ts and digitalocean-token.test.ts) by addressing fetch mock pollution from concurrent test files. #3341 also includes cmdrun-happy-path.test.ts fixes and uses URL-pattern-aware mock routing (more robust). Recommend merging #3341 first; this PR may then be superseded.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Supersession note: This PR (#3353) is likely superseded by #3358 (root cause fix) + #3365 (more robust defense in depth). If both of those land, this PR can be closed.

Leaving open for now pending human decision on merge order.

-- spawn-refactor/pr-maintainer

Two tests (hetzner-cov and digitalocean-token) failed consistently in the
full suite because telemetry.test.ts enables PostHog telemetry via the
shared module singleton, and those async fetch calls leak into other test
files' globalThis.fetch mocks, incrementing callCount and shifting mock
response order.
Fix: filter non-test URLs in affected mocks so telemetry calls get a
benign response without affecting callCount.
Agent: test-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded by #3376, which provides a more comprehensive fix for the same telemetry singleton leak (runtime env-var guard in sendEvent() + SPAWN_TELEMETRY=0 in test preload).

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Superseded by #3376.

@la14-1la14-1 closed this May 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@la14-1@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(tests): filter PostHog telemetry from fetch mocks - #3353

Closed
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests
Closed

fix(tests): filter PostHog telemetry from fetch mocks#3353
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why: Two tests fail consistently in the full suite (0% pass rate) due to PostHog telemetry fetch calls leaking into globalThis.fetch mocks, corrupting callCount-based response routing.

Summary

  • hetzner-cov.test.ts: "cleans up orphaned primary IPs" test fails because PostHog calls shift mock response order (HTTP 403 returned at wrong time)
  • digitalocean-token.test.ts: "attempts OAuth recovery on 401" test gets callCount=4 instead of 2 (2 extra PostHog calls)
  • Root cause: telemetry.test.ts enables the PostHog singleton which persists across test files in the same bun process
  • Fix: filter non-test URLs in affected fetch mocks so telemetry calls get a benign response without incrementing callCount

Test plan

  • Full suite: 2108 pass, 0 fail (was 2106 pass, 2 fail)
  • Both affected test files pass in isolation
  • Biome lint clean

-- spawn-refactor/test-engineer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Note: This PR overlaps with #3341 — both fix the same 2 flaky tests (hetzner-cov.test.ts and digitalocean-token.test.ts) by addressing fetch mock pollution from concurrent test files. #3341 also includes cmdrun-happy-path.test.ts fixes and uses URL-pattern-aware mock routing (more robust). Recommend merging #3341 first; this PR may then be superseded.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Supersession note: This PR (#3353) is likely superseded by #3358 (root cause fix) + #3365 (more robust defense in depth). If both of those land, this PR can be closed.

Leaving open for now pending human decision on merge order.

-- spawn-refactor/pr-maintainer

Two tests (hetzner-cov and digitalocean-token) failed consistently in the
full suite because telemetry.test.ts enables PostHog telemetry via the
shared module singleton, and those async fetch calls leak into other test
files' globalThis.fetch mocks, incrementing callCount and shifting mock
response order.
Fix: filter non-test URLs in affected mocks so telemetry calls get a
benign response without affecting callCount.
Agent: test-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded by #3376, which provides a more comprehensive fix for the same telemetry singleton leak (runtime env-var guard in sendEvent() + SPAWN_TELEMETRY=0 in test preload).

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Superseded by #3376.

@la14-1la14-1 closed this May 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@la14-1@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(tests): filter PostHog telemetry from fetch mocks - #3353

Closed
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests
Closed

fix(tests): filter PostHog telemetry from fetch mocks#3353
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why: Two tests fail consistently in the full suite (0% pass rate) due to PostHog telemetry fetch calls leaking into globalThis.fetch mocks, corrupting callCount-based response routing.

Summary

  • hetzner-cov.test.ts: "cleans up orphaned primary IPs" test fails because PostHog calls shift mock response order (HTTP 403 returned at wrong time)
  • digitalocean-token.test.ts: "attempts OAuth recovery on 401" test gets callCount=4 instead of 2 (2 extra PostHog calls)
  • Root cause: telemetry.test.ts enables the PostHog singleton which persists across test files in the same bun process
  • Fix: filter non-test URLs in affected fetch mocks so telemetry calls get a benign response without incrementing callCount

Test plan

  • Full suite: 2108 pass, 0 fail (was 2106 pass, 2 fail)
  • Both affected test files pass in isolation
  • Biome lint clean

-- spawn-refactor/test-engineer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Note: This PR overlaps with #3341 — both fix the same 2 flaky tests (hetzner-cov.test.ts and digitalocean-token.test.ts) by addressing fetch mock pollution from concurrent test files. #3341 also includes cmdrun-happy-path.test.ts fixes and uses URL-pattern-aware mock routing (more robust). Recommend merging #3341 first; this PR may then be superseded.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Supersession note: This PR (#3353) is likely superseded by #3358 (root cause fix) + #3365 (more robust defense in depth). If both of those land, this PR can be closed.

Leaving open for now pending human decision on merge order.

-- spawn-refactor/pr-maintainer

Two tests (hetzner-cov and digitalocean-token) failed consistently in the
full suite because telemetry.test.ts enables PostHog telemetry via the
shared module singleton, and those async fetch calls leak into other test
files' globalThis.fetch mocks, incrementing callCount and shifting mock
response order.
Fix: filter non-test URLs in affected mocks so telemetry calls get a
benign response without affecting callCount.
Agent: test-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded by #3376, which provides a more comprehensive fix for the same telemetry singleton leak (runtime env-var guard in sendEvent() + SPAWN_TELEMETRY=0 in test preload).

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Superseded by #3376.

@la14-1la14-1 closed this May 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@la14-1@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(tests): filter PostHog telemetry from fetch mocks - #3353

Closed
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests
Closed

fix(tests): filter PostHog telemetry from fetch mocks#3353
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why: Two tests fail consistently in the full suite (0% pass rate) due to PostHog telemetry fetch calls leaking into globalThis.fetch mocks, corrupting callCount-based response routing.

Summary

  • hetzner-cov.test.ts: "cleans up orphaned primary IPs" test fails because PostHog calls shift mock response order (HTTP 403 returned at wrong time)
  • digitalocean-token.test.ts: "attempts OAuth recovery on 401" test gets callCount=4 instead of 2 (2 extra PostHog calls)
  • Root cause: telemetry.test.ts enables the PostHog singleton which persists across test files in the same bun process
  • Fix: filter non-test URLs in affected fetch mocks so telemetry calls get a benign response without incrementing callCount

Test plan

  • Full suite: 2108 pass, 0 fail (was 2106 pass, 2 fail)
  • Both affected test files pass in isolation
  • Biome lint clean

-- spawn-refactor/test-engineer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Note: This PR overlaps with #3341 — both fix the same 2 flaky tests (hetzner-cov.test.ts and digitalocean-token.test.ts) by addressing fetch mock pollution from concurrent test files. #3341 also includes cmdrun-happy-path.test.ts fixes and uses URL-pattern-aware mock routing (more robust). Recommend merging #3341 first; this PR may then be superseded.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Supersession note: This PR (#3353) is likely superseded by #3358 (root cause fix) + #3365 (more robust defense in depth). If both of those land, this PR can be closed.

Leaving open for now pending human decision on merge order.

-- spawn-refactor/pr-maintainer

Two tests (hetzner-cov and digitalocean-token) failed consistently in the
full suite because telemetry.test.ts enables PostHog telemetry via the
shared module singleton, and those async fetch calls leak into other test
files' globalThis.fetch mocks, incrementing callCount and shifting mock
response order.
Fix: filter non-test URLs in affected mocks so telemetry calls get a
benign response without affecting callCount.
Agent: test-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded by #3376, which provides a more comprehensive fix for the same telemetry singleton leak (runtime env-var guard in sendEvent() + SPAWN_TELEMETRY=0 in test preload).

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Superseded by #3376.

@la14-1la14-1 closed this May 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@la14-1@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(tests): filter PostHog telemetry from fetch mocks - #3353

Closed
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests
Closed

fix(tests): filter PostHog telemetry from fetch mocks#3353
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why: Two tests fail consistently in the full suite (0% pass rate) due to PostHog telemetry fetch calls leaking into globalThis.fetch mocks, corrupting callCount-based response routing.

Summary

  • hetzner-cov.test.ts: "cleans up orphaned primary IPs" test fails because PostHog calls shift mock response order (HTTP 403 returned at wrong time)
  • digitalocean-token.test.ts: "attempts OAuth recovery on 401" test gets callCount=4 instead of 2 (2 extra PostHog calls)
  • Root cause: telemetry.test.ts enables the PostHog singleton which persists across test files in the same bun process
  • Fix: filter non-test URLs in affected fetch mocks so telemetry calls get a benign response without incrementing callCount

Test plan

  • Full suite: 2108 pass, 0 fail (was 2106 pass, 2 fail)
  • Both affected test files pass in isolation
  • Biome lint clean

-- spawn-refactor/test-engineer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Note: This PR overlaps with #3341 — both fix the same 2 flaky tests (hetzner-cov.test.ts and digitalocean-token.test.ts) by addressing fetch mock pollution from concurrent test files. #3341 also includes cmdrun-happy-path.test.ts fixes and uses URL-pattern-aware mock routing (more robust). Recommend merging #3341 first; this PR may then be superseded.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Supersession note: This PR (#3353) is likely superseded by #3358 (root cause fix) + #3365 (more robust defense in depth). If both of those land, this PR can be closed.

Leaving open for now pending human decision on merge order.

-- spawn-refactor/pr-maintainer

Two tests (hetzner-cov and digitalocean-token) failed consistently in the
full suite because telemetry.test.ts enables PostHog telemetry via the
shared module singleton, and those async fetch calls leak into other test
files' globalThis.fetch mocks, incrementing callCount and shifting mock
response order.
Fix: filter non-test URLs in affected mocks so telemetry calls get a
benign response without affecting callCount.
Agent: test-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded by #3376, which provides a more comprehensive fix for the same telemetry singleton leak (runtime env-var guard in sendEvent() + SPAWN_TELEMETRY=0 in test preload).

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Superseded by #3376.

@la14-1la14-1 closed this May 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@la14-1@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(tests): filter PostHog telemetry from fetch mocks - #3353

Closed
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests
Closed

fix(tests): filter PostHog telemetry from fetch mocks#3353
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why: Two tests fail consistently in the full suite (0% pass rate) due to PostHog telemetry fetch calls leaking into globalThis.fetch mocks, corrupting callCount-based response routing.

Summary

  • hetzner-cov.test.ts: "cleans up orphaned primary IPs" test fails because PostHog calls shift mock response order (HTTP 403 returned at wrong time)
  • digitalocean-token.test.ts: "attempts OAuth recovery on 401" test gets callCount=4 instead of 2 (2 extra PostHog calls)
  • Root cause: telemetry.test.ts enables the PostHog singleton which persists across test files in the same bun process
  • Fix: filter non-test URLs in affected fetch mocks so telemetry calls get a benign response without incrementing callCount

Test plan

  • Full suite: 2108 pass, 0 fail (was 2106 pass, 2 fail)
  • Both affected test files pass in isolation
  • Biome lint clean

-- spawn-refactor/test-engineer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Note: This PR overlaps with #3341 — both fix the same 2 flaky tests (hetzner-cov.test.ts and digitalocean-token.test.ts) by addressing fetch mock pollution from concurrent test files. #3341 also includes cmdrun-happy-path.test.ts fixes and uses URL-pattern-aware mock routing (more robust). Recommend merging #3341 first; this PR may then be superseded.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Supersession note: This PR (#3353) is likely superseded by #3358 (root cause fix) + #3365 (more robust defense in depth). If both of those land, this PR can be closed.

Leaving open for now pending human decision on merge order.

-- spawn-refactor/pr-maintainer

Two tests (hetzner-cov and digitalocean-token) failed consistently in the
full suite because telemetry.test.ts enables PostHog telemetry via the
shared module singleton, and those async fetch calls leak into other test
files' globalThis.fetch mocks, incrementing callCount and shifting mock
response order.
Fix: filter non-test URLs in affected mocks so telemetry calls get a
benign response without affecting callCount.
Agent: test-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded by #3376, which provides a more comprehensive fix for the same telemetry singleton leak (runtime env-var guard in sendEvent() + SPAWN_TELEMETRY=0 in test preload).

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Superseded by #3376.

@la14-1la14-1 closed this May 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@la14-1@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(tests): filter PostHog telemetry from fetch mocks - #3353

Closed
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests
Closed

fix(tests): filter PostHog telemetry from fetch mocks#3353
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why: Two tests fail consistently in the full suite (0% pass rate) due to PostHog telemetry fetch calls leaking into globalThis.fetch mocks, corrupting callCount-based response routing.

Summary

  • hetzner-cov.test.ts: "cleans up orphaned primary IPs" test fails because PostHog calls shift mock response order (HTTP 403 returned at wrong time)
  • digitalocean-token.test.ts: "attempts OAuth recovery on 401" test gets callCount=4 instead of 2 (2 extra PostHog calls)
  • Root cause: telemetry.test.ts enables the PostHog singleton which persists across test files in the same bun process
  • Fix: filter non-test URLs in affected fetch mocks so telemetry calls get a benign response without incrementing callCount

Test plan

  • Full suite: 2108 pass, 0 fail (was 2106 pass, 2 fail)
  • Both affected test files pass in isolation
  • Biome lint clean

-- spawn-refactor/test-engineer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Note: This PR overlaps with #3341 — both fix the same 2 flaky tests (hetzner-cov.test.ts and digitalocean-token.test.ts) by addressing fetch mock pollution from concurrent test files. #3341 also includes cmdrun-happy-path.test.ts fixes and uses URL-pattern-aware mock routing (more robust). Recommend merging #3341 first; this PR may then be superseded.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Supersession note: This PR (#3353) is likely superseded by #3358 (root cause fix) + #3365 (more robust defense in depth). If both of those land, this PR can be closed.

Leaving open for now pending human decision on merge order.

-- spawn-refactor/pr-maintainer

Two tests (hetzner-cov and digitalocean-token) failed consistently in the
full suite because telemetry.test.ts enables PostHog telemetry via the
shared module singleton, and those async fetch calls leak into other test
files' globalThis.fetch mocks, incrementing callCount and shifting mock
response order.
Fix: filter non-test URLs in affected mocks so telemetry calls get a
benign response without affecting callCount.
Agent: test-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded by #3376, which provides a more comprehensive fix for the same telemetry singleton leak (runtime env-var guard in sendEvent() + SPAWN_TELEMETRY=0 in test preload).

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Superseded by #3376.

@la14-1la14-1 closed this May 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@la14-1@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(tests): filter PostHog telemetry from fetch mocks - #3353

Closed
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests
Closed

fix(tests): filter PostHog telemetry from fetch mocks#3353
la14-1 wants to merge 1 commit into
mainfrom
fix-flaky-tests

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why: Two tests fail consistently in the full suite (0% pass rate) due to PostHog telemetry fetch calls leaking into globalThis.fetch mocks, corrupting callCount-based response routing.

Summary

  • hetzner-cov.test.ts: "cleans up orphaned primary IPs" test fails because PostHog calls shift mock response order (HTTP 403 returned at wrong time)
  • digitalocean-token.test.ts: "attempts OAuth recovery on 401" test gets callCount=4 instead of 2 (2 extra PostHog calls)
  • Root cause: telemetry.test.ts enables the PostHog singleton which persists across test files in the same bun process
  • Fix: filter non-test URLs in affected fetch mocks so telemetry calls get a benign response without incrementing callCount

Test plan

  • Full suite: 2108 pass, 0 fail (was 2106 pass, 2 fail)
  • Both affected test files pass in isolation
  • Biome lint clean

-- spawn-refactor/test-engineer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Note: This PR overlaps with #3341 — both fix the same 2 flaky tests (hetzner-cov.test.ts and digitalocean-token.test.ts) by addressing fetch mock pollution from concurrent test files. #3341 also includes cmdrun-happy-path.test.ts fixes and uses URL-pattern-aware mock routing (more robust). Recommend merging #3341 first; this PR may then be superseded.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Supersession note: This PR (#3353) is likely superseded by #3358 (root cause fix) + #3365 (more robust defense in depth). If both of those land, this PR can be closed.

Leaving open for now pending human decision on merge order.

-- spawn-refactor/pr-maintainer

Two tests (hetzner-cov and digitalocean-token) failed consistently in the
full suite because telemetry.test.ts enables PostHog telemetry via the
shared module singleton, and those async fetch calls leak into other test
files' globalThis.fetch mocks, incrementing callCount and shifting mock
response order.
Fix: filter non-test URLs in affected mocks so telemetry calls get a
benign response without affecting callCount.
Agent: test-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded by #3376, which provides a more comprehensive fix for the same telemetry singleton leak (runtime env-var guard in sendEvent() + SPAWN_TELEMETRY=0 in test preload).

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Superseded by #3376.

@la14-1la14-1 closed this May 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@la14-1@louisgv