feat: Add non-color indicator to vote button state #168
Open
typosaurus
wants to merge 3 commits from
typosaurus/162-add-non-color-indicator-to-vote-button-state into master
pull from: typosaurus/162-add-non-color-indicator-to-vote-button-state
merge into: retoor:master
retoor:master
retoor:typosaurus/132-missing-notification-when-another-user-comments-on-a-post-th
retoor:typosaurus/134-cosmetic-title-replaces-clickable-username-on-leaderboard
retoor:typosaurus/157-add-badge-earned-info-to-user-profile-badges-api-response
retoor:typosaurus/ticket-150
retoor:typosaurus/ticket-152
retoor:typosaurus/ticket-148
retoor:typosaurus/ticket-146
retoor:typosaurus/112-expose-level-progress-percentage-in-profile-api-response
retoor:typosaurus/113-fix-badge-names-returning-null-in-profile-endpoint
retoor:typosaurus/138-fix-navigation-bar-link-icons-and-text-appearing-on-separate
retoor:typosaurus/ticket-138
retoor:typosaurus/ticket-135
retoor:typosaurus/ticket-132
retoor:typosaurus/ticket-110
retoor:typosaurus/ticket-116
retoor:typosaurus/ticket-113
retoor:typosaurus/ticket-114
retoor:typosaurus/ticket-111
retoor:typosaurus/ticket-112
retoor:typosaurus/ticket-106
retoor:typosaurus/ticket-104
retoor:typosaurus/ticket-84
retoor:typosaurus/ticket-93
retoor:typosaurus/ticket-73
retoor:typosaurus/ticket-89
retoor:typosaurus/ticket-85
retoor:typosaurus/ticket-86
retoor:typosaurus/ticket-88
retoor:typosaurus/ticket-105
retoor:typosaurus/ticket-95
retoor:typosaurus/ticket-102
retoor:typosaurus/ticket-91
retoor:typosaurus/ticket-90
retoor:typosaurus/ticket-87
retoor:typosaurus/ticket-72
retoor:typosaurus/ticket-81
retoor:typosaurus/ticket-83
retoor:typosaurus/ticket-78
retoor:typosaurus/ticket-74
retoor:typosaurus/ticket-82
retoor:typosaurus/ticket-97
retoor:typosaurus/ticket-99
retoor:typosaurus/ticket-68
retoor:typosaurus/ticket-66
retoor:typosaurus/ticket-75
retoor:typosaurus/ticket-61
retoor:typosaurus/ticket-44
retoor:typosaurus/ticket-57
retoor:typosaurus/ticket-48
retoor:typosaurus/ticket-64
retoor:typosaurus/ticket-94
retoor:typosaurus/ticket-103
retoor:typosaurus/ticket-26
retoor:typosaurus/ticket-71
retoor:typosaurus/ticket-7
retoor:typosaurus/ticket-70
retoor:typosaurus/ticket-10
retoor:typosaurus/ticket-65
retoor:typosaurus/ticket-69
retoor:typosaurus/ticket-67
retoor:typosaurus/ticket-76
retoor:typosaurus/ticket-21
retoor:production
3 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
| c14bf98414 |
test(sveta): Extend vote-state tests to assert the non-color cue
Some checks failed
DevPlace CI / test (pull_request) Failing after 1h23m46s
Outcome: done
Changed: tests/conftest.py:293-300, tests/e2e/post.py:5,74-157, tests/e2e/posts/index.py:17,396-418, tests/e2e/notifications/index.py:313,799, tests/e2e/leaderboard.py:42
Verified by: python -m pytest tests/e2e/post.py tests/e2e/posts/index.py tests/e2e/notifications/index.py tests/e2e/leaderboard.py -> 68 passed (verify() passed); make test full suite -> 3344 passed, 1 skipped, 10 failed (9x tests/api/projects/workspace.py: docker binary absent in this environment, same as prior sibling run; 1x tests/e2e/game/farm.py::test_victim_notification_names_the_raider_and_the_amount, passes standalone and 9/9 in its file, game code has no vote markup)
Findings: New vote_glyph helper (tests/conftest.py:293) reads getComputedStyle(el,'::before').content and normalizes CSS escapes; glyph assertions cover post upvote (+ -> U+2295), post downvote (U+2212 -> U+2296), and comment upvote (+ -> U+2295), each also asserting unvoted glyph absence and toggle-off restoration to the unvoted glyph. New test fails against pre-change code: on
|
|||
| 95c4233802 |
feat(zoya): Review the vote-button change map against the acceptance criteria
Outcome: done
Changed: none
Verified by: e2e run attempted (3 tests) but blocked at browser launch by missing libglib-2.0.so.0 (environment fault, not a result); breakage proven from Playwright source elementText() in driver coreBundle.js plus empty-button markup
Findings: REJECT - the implementation empties all four vote buttons (_post_votes.html:4,9; _comment.html:6,11) and moves glyphs into CSS ::before, so has_text="+" locators at tests/e2e/notifications/index.py:313, :799 and tests/e2e/leaderboard.py:42 match zero elements (Playwright text matching reads DOM text nodes, never ::before content) and those 3 tests time out
Findings: commit
|
|||
| 625940a017 |
feat(mila): Confirm the star precedent, enumerate test dependencies, recommend the non-color
Outcome: done Changed: none Verified by: not verified (read-only node; no files changed) Findings: RECOMMENDATION TO BUILDER: swap the glyph in the voted state only — upvote `+` (U+002B) → `⊕` (U+2295), downvote `−`/`-` (U+2212/U+002D) → `⊖` (U+2296) — via template conditionals in _post_votes.html:4,9 and _comment.html:6,11 plus a VoteManager.js render() textContent mirror scoped to `.vote-up`/`.vote-down` only (VoteManager also binds `.vote-star` forms, whose `::before` glyph must not be overwritten). Findings: Precedent confirmed at base.css:1319-1325: `.vote-star::before` swaps outline `\2606` (line 1320) to filled `\2605` (line 1324) under `.voted`; templates/CLAUDE.md:70 confirms the star glyph is pseudo-element-only, while the +/- glyphs are text nodes, so a pure-CSS swap would require moving them into `::before`. Findings: Only 3 of 18 vote-button test hits are text-coupled — tests/e2e/notifications/index.py:313, :799 and tests/e2e/leaderboard.py:42, all `button.post-action-btn` filtered by `has_text="+"`; each resolves immediately before the click, so a voted-state-only glyph swap that preserves the unvoted `+` text breaks none of them. Findings: The other 15 hits (posts/index.py:407,413; projects/devlog.py:133-134; feed.py:687; post.py:63,70,80,83,87,97,100,104,187) and all comment tests (post.py:117-124,218-221,274-278) use `.vote-up`/`.vote-down`/`.comment-vote-btn` classes and `\bvoted\b` assertions, so they break only if those class names change. Findings: Empiri Typosaurus-Run: c36faeceb55d45b6bf38a45eec4f47ab Typosaurus-Node: 9f61b1db85c147a6b2b8376a6c8ae798 Typosaurus-Agent: @mila Refs: #162 |