Tests, API-backed feature gaps, and Fluent emoji everywhere - #3
Merged
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Zingzy
force-pushed
the
feat/tests-and-gaps
branch
from
August 28, 2026 22:55
3731f08 to
18db13f
Compare
Zingzy
force-pushed
the
fix/security-hardening
branch
from
August 28, 2026 23:12
b3c8047 to
14e1a79
Compare
JUnit, coroutines-test, and turbine enter the catalog; CI runs the suite before building. Coverage starts where logic is densest: URL and password validators, the suggestion recipe as a property test, error mapping, widget config state round-trips, and the mock repository's filter/search/sort/paging contract.
Typing an alias checks the server behind a 400ms debounce; a taken alias reads "Already taken" under the field and holds the submit button, with the server still the backstop. The sort rail gains Active, the list endpoint's last-click order.
The click-dimensions the API has carried since #259 reach the app: two new breakdown cards with device glyphs and source monograms, filterable like the rest, available as widget dimensions and widget filters, and honored by the mock's share math.
The create sheet's emoji alias renders as bundled Fluent artwork in the field's prefix slot (a zero-width value keeps the prefix visible while read-only). Widget micro-labels mix Glance text runs with asset-backed images, so an emoji-scoped widget shows the real artwork; config scope rows and the preview label follow.
Emoji detection tested the wrong thing: 'not ASCII' matched the middle dot in every widget label, so each separator chased an asset that does not exist, on every render. Detection is now a codepoint-range test, misses are cached, and a label needing more than Glance's ten children falls back to plain text instead of failing to render. Slice labels are escaped, since a newline in one silently dropped the record. The UTM dimension carries a display name rather than reading UTMSOURCE, analytics filters offer the dimensions its cards can filter by, and a taken alias is told apart from a reserved or invalid one. Alias input resets on dismiss so a surviving draft rechecks.
Zingzy
force-pushed
the
feat/tests-and-gaps
branch
from
August 28, 2026 23:13
18db13f to
10728b1
Compare
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.
Stacked on #1. Tests, the API-backed feature gaps, and Fluent emoji, plus a commit addressing the review of this branch.
Tests
JUnit, coroutines-test, and turbine join the catalog, CI runs the suite before building, and 33 tests cover the densest logic: URL and password validators, error mapping, widget config state round-trips, emoji codepoint detection, and the mock repository's filter/search/sort/paging contract.
Feature gaps the API already supported
Fluent emoji
The emoji alias renders as bundled Fluent artwork inside the create field, and widget labels mix Glance text runs with asset-backed images.
What the review of this branch caught