You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One new file: trios/agent-server/apps/agent/components/elements/glowing-border.test.ts (the path the issue's Success Criteria names). The subject glowing-border.tsx is untouched.
The 2 exported symbols are exercised (2 it( blocks; 0 blocked):
GlowingBorder (1 test): rendered with renderToStaticMarkup - measured, the static render goes through the motion hooks and shows the frame it answers: the cosmetic svg carrying the corner radii and the rest of the props, the rect the animation walks, and the children drawn twice - once in each of the two absolutely-positioned layers the travelling glows sit in.
GlowingElement (1 test, direct call): the orange gradient square the glows are made of.
Not pinned, and why (issue User Story 2): the animation itself - the frame loop pacing two glows along the path - needs a live document with requestAnimationFrame; the static pins read the frame it renders. No mocks at all; no suite of this job mocks any module in this subject's import graph.
How it was verified (FR-004)
Passing run against the unmodified subject: 2 pass / 0 fail / 8 expect() calls, Ran 2 tests across 1 file.
Deliberately broken copy (the gradient square's size classes changed, valid syntax): 1 pass / 1 fail / 7 expect() calls. The subject was restored byte-identical (git checkout; git diff --name-only prints nothing) and the suite passes again.
No network, database or container; no existing test modified or weakened. The file is biome-check clean. The local typecheck reports 59 errors - the pre-existing local base of this tree - and 0 mentions of the new file.
This PR adds a contract test file pinning the current output of GlowingBorder and GlowingElement from glowing-border.tsx. The tests use renderToStaticMarkup for the motion-driven GlowingBorder and a direct call for the hook-free GlowingElement, asserting on specific markup and class names so future changes have a baseline to fail against.
Worth a look
glowing-border.test.ts:42-47 β GlowingElement is called directly and cast to { props: { className: string } }. If the component ever returns a fragment, a different element type, or null, the cast will succeed at compile time but the runtime element.props access will throw, making the test crash instead of fail cleanly.
glowing-border.test.ts:45-46 β The assertions toContain('h-20 w-20') and toContain('radial-gradient') depend on exact class ordering and spacing. A harmless class reorder (e.g., w-20 h-20) or an added utility class between them would fail the test despite identical visual output.
glowing-border.test.ts:26-33 β The GlowingBorder test asserts on implementation details: position:absolute appearing twice and the child text GLOW-CHILD appearing twice. If the layer structure changes (e.g., a wrapper div added, or children rendered via a portal), these counts shift and the test fails even if the visual contract holds.
glowing-border.test.ts:15-33 β The test relies on motion hooks (useMotionValue, useAnimationFrame, etc.) executing during renderToStaticMarkup. If the motion library changes to skip animation setup in SSR/static contexts, the rendered frame (the rect, the corner radii, the dual layers) could differ, causing false negatives.
Read: 1 files, +58 -0, the whole diff. Head c90d7f7. Model: openai-compatible/nvidia/nemotron-3-ultra-550b-a55b. Commands: @t27-bees review | summary | help | pause | resume. Free for every repository.
Tests / server-tools failed on the first CI run - the known ACL flake of #1901 (the same job that fails intermittently on this branch's base). Rerunning the failed job once per the wave's flake protocol; will record the outcome here.
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
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.
Closes #1631
What changed
One new file:
trios/agent-server/apps/agent/components/elements/glowing-border.test.ts(the path the issue's Success Criteria names). The subjectglowing-border.tsxis untouched.The 2 exported symbols are exercised (2
it(blocks; 0 blocked):GlowingBorder(1 test): rendered withrenderToStaticMarkup- measured, the static render goes through the motion hooks and shows the frame it answers: the cosmetic svg carrying the corner radii and the rest of the props, the rect the animation walks, and the children drawn twice - once in each of the two absolutely-positioned layers the travelling glows sit in.GlowingElement(1 test, direct call): the orange gradient square the glows are made of.Not pinned, and why (issue User Story 2): the animation itself - the frame loop pacing two glows along the path - needs a live document with requestAnimationFrame; the static pins read the frame it renders. No mocks at all; no suite of this job mocks any module in this subject's import graph.
How it was verified (FR-004)
2 pass / 0 fail / 8 expect() calls, Ran 2 tests across 1 file.1 pass / 1 fail / 7 expect() calls. The subject was restored byte-identical (git checkout;git diff --name-onlyprints nothing) and the suite passes again.bun run typecheckrunswxt prepare, whose generated.wxt/tsconfig.jsonmakes bun 1.3.6 stop resolving@/aliases for test runs until that generated directory is removed. CI's Tests jobs never runwxt prepare; every run quoted above is from a checkout without.wxt/.Not verified
Tests / agentjob re-runs the suite on this SHA.Dmitrii Fedorov (@dmitrii-f-t27)