test: add node:test coverage for section colors, render, click/wheel seek - #9
Merged
Conversation
…seek Node-only module.exports hook wrapping the side-effect IIFE (poller + playSong/showScreen wrapping) in an else-branch so it never runs under Node — avoids leaving a live setInterval handle that would keep the test process alive. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThis PR adds a CommonJS export branch to screen.js, exposing internal section-map helper functions and state accessors for testing, while preserving existing browser IIFE behavior. A new test suite validates color lookup, formatting, rendering, and click/wheel seeking logic. ChangesSection-map Test Exposure
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
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.
Twenty-first repo from the org test-coverage audit. screen.js has no top-level wrapping IIFE for its function declarations — only the side-effect block (5Hz poller + playSong/showScreen wrapping) at the tail is wrapped. The
module.exportshook wraps that tail block in anelsebranch instead of a barereturn, since a livesetIntervalhandle would otherwise keep the Node test process alive after the file loads.10 tests against small hand-rolled fake bar/audio elements (no jsdom):
_smGetColor: substring + case-insensitive section-name matching, default fallback_smFmt: m:ss formatting with zero-padded seconds_smRender: one block per section + a position marker, correct left%/width% math, numeric-suffix stripping + capitalization on labels_smOnClick: seeks to the clicked fraction immediately when paused, pause→seek→resume dance while playing_smOnWheel: fine-grained (0.1s) delta with Ctrl, full-second delta without, clamps to[0, duration]🤖 Generated with Claude Code
Summary by CodeRabbit
Bug Fixes
Tests