Files

96 lines
6.9 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
✔ derives automatic frame names from current animation name and position (1.2763ms)
✔ keeps custom frame names and restores automatic names when cleared (0.1825ms)
✔ builds non-repeating animation edit context names (0.181ms)
✔ selects saved animation preview frames by ordered durations (0.9958ms)
✔ loads every preview frame through revision-checked pagination (0.7561ms)
✔ validates configurable animation preview concurrency (1.9627ms)
✔ rejects mixed revisions instead of showing a partial animation (1.0326ms)
✔ validates frame duration only when explicitly called (1.176ms)
✔ moves selected frames as one ordered group (0.5676ms)
✔ protects an eight pixel ring around interactive drag controls (0.4859ms)
✔ reorders mixed library keys without mutating the source list (0.3325ms)
✔ restores drag eligibility after protected pointer cancellation and drag end (1.1104ms)
✔ animation workspace exposes two previews and the simplified control order (23.9095ms)
✔ normal and pixel modes expose independent ranges and presets (3.1862ms)
✔ pixel stamps are exact squares from 1x1 through 4x4 (0.4014ms)
✔ pixel stamps clip at every canvas edge (0.2968ms)
✔ normal circle geometry remains unchanged (0.1377ms)
✔ line interpolation includes endpoints without coordinate gaps (0.3125ms)
✔ older tools migrate while v3 restores the coordinate guide choice (0.3512ms)
✔ coordinate guide spacing adapts to the transformed logical pixel size (0.2046ms)
✔ coordinate guide ticks preserve logical values through zoom and pan (0.2702ms)
✔ pixel mode markup and grid stay accessible and non-interactive (14.9772ms)
✔ pixel undo history stores changed snapshots, caps entries, and clears (0.9471ms)
✔ canvas view clamps scale and keeps a visible section in the viewport (0.4943ms)
✔ zooming around an anchor preserves its logical position (0.2473ms)
✔ floating editor button stays inside its safe viewport bounds (0.1309ms)
✔ canvas editor markup, guarded input, and checkpoint events stay wired (4.5038ms)
✔ normalizes and converts hexadecimal colors (3.1945ms)
✔ converts RGB and HSV boundaries (0.699ms)
✔ round trips representative colors within 8-bit rounding (0.9168ms)
✔ recent colors deduplicate, normalize, and evict the oldest (0.4437ms)
✔ formats and projects looping playback without moving paused content (1.752ms)
✔ seek dispatcher keeps one request in flight and flushes the newest position (3.93ms)
✔ topbar current display dialog exposes static close and animation controls (8.6886ms)
✔ device workspace exposes the compact immediate pure-color test flow (12.5038ms)
✔ font catalog normalization, grouping, and search are stable (3.6219ms)
✔ font picker implements commit-only searchable combobox keyboard behavior (6.5188ms)
✔ settings places unrestricted FRP maintenance at the bottom (9.7463ms)
✔ FRP editor uses raw server storage and official validation errors (2.0804ms)
✔ network diagnostics renders layered evidence (4.4397ms)
✔ unavailable controls never masquerade as indefinite loading (9.4291ms)
✔ action controls do not bypass the shared state module (14.0548ms)
✔ HTTP requests time out with a stable user-facing error (10.9642ms)
✔ demo library actions stay black, explain restrictions, and preserve copy (1.7026ms)
✔ sortable cards protect controls and keep demo cards fixed (1.9263ms)
✔ media import workspace exposes streaming upload, crop controls, and queue polling (2.0486ms)
✔ free framing starts from the complete source and keeps one pixel visible (1.1908ms)
✔ free framing copy is stable and catalogued (0.1702ms)
✔ upload action has visible ordinary-build copy (0.3722ms)
✔ media naming happens after analysis and conflicts keep the draft (0.2871ms)
✔ awaiting-settings cards survive polling without hiding server transitions (0.2058ms)
✔ old scene migration rejects unknown fields and duplicate text without filtering (71.3308ms)
✔ PNG compression round trips sparse and full brush pixels without DOM (8.2936ms)
✔ blank and black are distinct; independent backgrounds follow layer order (5.6738ms)
✔ disabled background colors stay independent through storage and copy (21.0577ms)
✔ extended pixels survive storage but never enter the central output (9.418ms)
✔ move preview does not mutate source; confirmed clipping removes only outside ink (25.3666ms)
✔ text clipping follows anchor and scale and is retained after edit/reload/copy (9.4652ms)
✔ multiple text groups isolate edits, copies and IDs (0.5377ms)
✔ strict v2 storage protects unknown data and the final brush invariant (7.1636ms)
✔ creates a fixed 64x64 RGB scene (11.4014ms)
✔ serializes pixelRgb as base64 and round trips an independent scene (54.9539ms)
✔ moves a valid v1 draft to the stable key before removing exact legacy keys (45.076ms)
✔ keeps the v1 draft and all legacy keys when stable-key migration cannot write (20.6105ms)
✔ preserves and blocks a future stable draft instead of falling back or writing blank (8.6419ms)
✔ preserves and blocks a damaged stable draft (0.4874ms)
✔ does not discard a damaged higher-priority legacy key during fallback migration (3.3709ms)
✔ rejects damaged scene roots while skipping only damaged elements (8.7487ms)
✔ normalizes text fields and creates a centered lowercase ok element (0.4622ms)
✔ migrates the first valid canvas by v3, v2, legacy priority and merges text v1 (17.8965ms)
✔ supports independent add, update, and delete operations for multiple text elements (0.8215ms)
✔ duplicates with a deep copy, new id, 2px offset, and topmost order (0.502ms)
✔ alpha-composites full RGBA layers in array order without mutating inputs (2.4435ms)
✔ settings brightness explains an active temporary display-test override (12.3309ms)
✔ settings exposes full OTA upload progress and service recovery polling (6.7881ms)
✔ settings automatically opens and safely copies a detailed OTA failure log (4.2111ms)
✔ settings exposes a transactional performance-mode switch with the fixed warning (2.3383ms)
✔ settings exposes persisted animation preview concurrency below performance mode (2.3375ms)
✔ template edit baseline distinguishes clean, dirty, and unbound scenes (1.8657ms)
✔ template manager uses a monitor and unified four-row card actions (18.9569ms)
✔ animation editing backs up and restores template edit ownership (3.8261ms)
✔ special editor exposes the agreed modes and guarded editing flow (9.4519ms)
✔ latched WiFi draft state remains dirty until explicitly cleared (3.7375ms)
✔ WiFi settings expose independent network and prompt-delay controls (5.8772ms)
✔ workspace order resolves saved ids and appends new registrations (1.7218ms)
✔ workspace order movement is immutable and respects both boundaries (0.3358ms)
✔ drawer exposes one editable list and commits only from the save action (8.5284ms)
ℹ tests 87
ℹ suites 0
ℹ pass 87
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 866.8466