Skip to content

feat: add snek speech bubble promoting newsletter signup - #340

Merged
JesperDramsch merged 1 commit into
mainfrom
claude/add-snake-speech-bubble-rfNrv
Apr 18, 2026
Merged

JesperDramsch merged 1 commit into
mainfrom
claude/add-snake-speech-bubble-rfNrv

Conversation

@JesperDramsch

Copy link
Copy Markdown
Owner

Adds a dismissible speech bubble above the smol snek announcing the newsletter. Clicking the bubble jumps to the footer signup form; dismissal is persisted in localStorage so it only shows until a visitor acknowledges it.

Adds a dismissible speech bubble above the smol snek announcing the
newsletter. Clicking the bubble jumps to the footer signup form;
dismissal is persisted in localStorage so it only shows until a
visitor acknowledges it.

https://claude.ai/code/session_017HZSVp3xRBBfzXgoyAS7sc
@JesperDramsch
JesperDramsch merged commit 57d4381 into main Apr 18, 2026
13 of 14 checks passed
@JesperDramsch
JesperDramsch deleted the claude/add-snake-speech-bubble-rfNrv branch April 18, 2026 20:10
JesperDramsch added a commit that referenced this pull request Jun 27, 2026
)

Two independent regressions kept "Run JavaScript Tests" red on main and
blocked unrelated dependabot PRs:

1. jest-environment-jsdom was bumped to ^30.3.0 (jsdom 26) while jest core
   stayed at 29. jsdom 26 makes window.location non-configurable, so the
   `delete window.location` / Object.defineProperty mocks used across the
   frontend tests throw ("Cannot redefine property: location" /
   "navigation not implemented"), failing 11 tests. Pin
   jest-environment-jsdom back to ^29.7.0 to match jest core and restore
   jsdom 20 location semantics. Verified: full suite green on jsdom 20.

2. snek.js coverage fell below threshold after #340 added the newsletter
   speech bubble without tests (functions 28.57% vs 40% required). Add a
   "Newsletter Speech Bubble" test block covering dismissSpeechBubble, both
   dismiss handlers, and the dismissed/not-dismissed branches. snek.js now
   exceeds all thresholds (stmts/lines 90%, branches 100%, funcs 71%) with
   no threshold relaxation.

Full suite: 15 suites, 423 tests passing with --coverage --ci.

Follow-up (separate PR): modernise the location mocks (history.replaceState)
so the suite can move to jest + jsdom v30.
Sign up for free to 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