test: add Binance UI coverage matrix - #169
Merged
Merged
Conversation
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.
Summary
Validation
✔ e2e/binance-orderbook/test.js (391.874042ms)
✔ selects the bottom account-orders open-orders tab over unrelated tab groups (86.783958ms)
✔ reads a confirmed zero position count from the unique account tab group (10.183291ms)
✔ rejects position counts when account tab groups are ambiguous (11.976041ms)
✔ does not trust aria-controls alone when resolving current-orders pane (13.776375ms)
✔ rejects ambiguous visible OPEN_ORDERS panes (7.531333ms)
✔ returns no active open-orders scope when current-orders tab is not active (5.12475ms)
✔ does not treat stale position content as active open-orders scope (5.144584ms)
✔ finds basic open-orders sub tab when conditional sub tab is selected (8.364833ms)
✔ finds the verified English Basic and Conditional labels with live counts (7.29675ms)
✔ reacquires account and open-orders tabs by semantic identity after rerender (18.49975ms)
✔ mutation wait survives replacement of the OPEN_ORDERS subtree (14.829ms)
✔ mutation wait reacts when Binance updates row text in place (44.442542ms)
✔ account-orders mutation signal wakes once for a relevant subtree change (4.976083ms)
✔ detects open and close mode tabs in the trade form only (86.697416ms)
✔ collects trade action buttons from explicit trade scopes and ignores own panel buttons (12.857083ms)
✔ collects the verified English trade action labels (11.157959ms)
✔ reads the unique split leverage button from the active trade scope (5.484792ms)
✔ rejects ambiguous leverage buttons in the active trade scope (5.029125ms)
✔ test/helpers/dom.js (784.679167ms)
✔ focus after the scheduled target reloads instead of moving the target to tomorrow (3.111583ms)
✔ trading data panel removes document drag listeners when panel is removed (0.845ms)
✔ trading data panel removes beforeunload listener when panel is removed (0.09925ms)
✔ cmc data panel removes document drag listeners when panel is removed (0.177708ms)
✔ cmc data panel removes beforeunload listener when panel is removed (0.067291ms)
✔ trading data panel does not render after close, hidden, or non-trading route (0.198334ms)
✔ trading data panel invalidates async work on route pause and rejects stale symbols after awaits (0.220458ms)
✔ trading data panel keeps a narrower fixed width with stable row value space (0.377542ms)
✔ CMC data panel stops business timers on non-trading routes but keeps a route watcher (0.09125ms)
✔ CMC data panel invalidates superseded and paused refreshes with a monotonic epoch (0.105083ms)
✔ trading data panel installs route watching from a matched non-trading cold start (1.192334ms)
✔ cmc data panel installs route watching from a matched non-trading cold start (0.204208ms)
✔ trading data server-time interval follows the business lifecycle (0.170334ms)
✔ CMC data panel escapes the CoinMarketCap link href before writing innerHTML (0.309583ms)
✔ CMC data panel keeps a compact fixed width without row overflow (0.121042ms)
✔ CoinMarketCap data panel excludes Binance wallet futures paths (4.750292ms)
✔ CoinMarketCap data panel parses only actual futures trading page symbols (3.883542ms)
✔ trading data panel excludes Binance wallet futures paths (7.107417ms)
✔ trading data panel parses only actual futures trading page symbols (4.531ms)
✔ other symbols do not prevent the current symbol from being confirmed flat (2.760583ms)
✔ all current-symbol position directions must be zero before reset (0.228084ms)
✔ rejects unsuccessful or malformed current-symbol position responses (0.855708ms)
✔ queues once when a symbol first becomes confirmed flat (0.162833ms)
✔ queues once when positions transition from present to flat (0.074833ms)
✔ does not create a new flat epoch when the observed root temporarily disappears (0.06325ms)
✔ starts a new flat epoch for a different symbol (0.075ms)
✔ centralizes the verified Chinese and English Binance page labels (0.645291ms)
✔ matches the verified account-order subtab labels and counts (0.106667ms)
✔ parses localized tab counts through the shared page-text contract (0.147625ms)
✔ matches additional verified Binance page fragments (0.132708ms)
✔ finds one semantic Binance cancel-all action pair through nested modal wrappers (86.583209ms)
✔ finds the verified English cancel-all dialog contract (10.308542ms)
✔ classifies nested confirm targets and the secondary cancel button (11.938875ms)
✔ classifies keyboard decisions including default Enter confirmation without button focus (9.679458ms)
✔ ignores unrelated dialogs and rejects invalid cancel-all button contracts (15.253583ms)
✔ rejects multiple semantic cancel-all dialogs with distinct action pairs (52.942042ms)
✔ dialog mutation signal ignores unrelated DOM churn and reports dialog insertion (17.858834ms)
✔ dialog mutation state resolves when React removes the dialog wrapper (9.086125ms)
✔ a pre-captured fast confirm is preserved after the dialog closes (0.575875ms)
✔ cancel, Escape, backdrop, and empty-area closure resolve as cancelled (0.0795ms)
✔ a visible dialog keeps waiting regardless of elapsed user decision time (0.070459ms)
✔ page lifecycle abort is distinct from a dialog contract failure (1.992167ms)
✔ an unseen dialog fails only after its discovery deadline (0.090041ms)
✔ cancel button exposes no-order completion feedback without disabling new actions (1.008708ms)
✔ normalizes text and recognizes open-orders tab labels (0.673542ms)
✔ parses open-orders count from localized tab text (0.220334ms)
✔ visible current-symbol rows are direct open-order evidence (0.672709ms)
✔ parses symbol when Binance joins time text and contract text (0.2495ms)
✔ visible open-order symbols include USDC perpetual contracts (0.284ms)
✔ account open-order count never proves that the current symbol has orders (0.092375ms)
✔ confirmed filtered empty state proves only the current symbol has no orders (0.15725ms)
✔ centralizes verified Binance account-order page texts (0.107958ms)
✔ current-symbol filter readiness rejects stale and transient React states (0.286042ms)
✔ enabled cancel-all is evidence after current-symbol filter is confirmed (0.078292ms)
✔ zero tab count or other visible symbols do not authorize current-symbol cancel (0.142125ms)
✔ scope is limited only when all visible symbols match current symbol (0.074458ms)
✔ checked current-symbol filter rejects transient rows from another symbol (0.060416ms)
✔ clear candidate accepts account zero despite stale current rows (1.091958ms)
✔ account zero is definitive while filtered empty state still settles (0.120583ms)
✔ clear candidate isolates current symbol when other account orders remain (0.057625ms)
✔ clear candidate must remain stable and resets when orders reappear (0.10325ms)
✔ post-stall clear candidate completes validation after wall-clock deadline (0.155333ms)
✔ creates and parses an exact TradingView orders reload recovery record (1.391167ms)
✔ distinguishes missing, invalid, future, and expired recovery records (0.487916ms)
✔ recovery records reject extra fields and invalid timestamps (0.537417ms)
✔ close direction requires both position sides to be freshly known (1.159666ms)
✔ close direction follows confirmed positions and the explicit dual-side selection (0.210292ms)
✔ pending close transition keeps the previous close snapshot and rejects stale open quantities (0.998958ms)
✔ first confirmed close snapshot accepts a legitimate zero immediately (0.899334ms)
✔ close controls render from confirmed display state without a pending-only disabled flash (0.4205ms)
✔ normalizes unsigned decimal strings without losing precision (0.938417ms)
✔ compares decimal strings at different scales (0.135333ms)
✔ adds and subtracts decimal strings exactly (1.300375ms)
✔ rounds quantity requirements to exchange step size (0.154084ms)
✔ multiplies decimal strings by integer or ratio (0.20325ms)
✔ multiplies decimal strings by decimal ratio without floating point conversion (0.066709ms)
✔ selects the maximum normalized decimal string (0.076375ms)
✔ calculates only the remaining interaction feedback duration (0.485708ms)
✔ keeps an immediate failure pending until its feedback window is visible (0.523208ms)
✔ does not delay a task that already exceeded the feedback window (0.095625ms)
✔ ladder percent options match configured open and close presets (1.337542ms)
✔ retired close 100 percent profiles explicitly migrate to the close default (0.944417ms)
✔ retired option migration rejects an unsupported replacement (0.630458ms)
✔ ladder default percents are available options (0.500875ms)
✔ ladder default values match the per-symbol presets (0.75525ms)
✔ new symbols default open and close ladder step to five without replacing saved values (0.373209ms)
✔ ladder option persistence is scoped by the current symbol (0.11925ms)
✔ ladder option persistence separates open and close mode for one symbol (0.091792ms)
✔ ladder option persistence separates orderbook precision for one symbol and mode (0.083042ms)
✔ quantity multiplier keys share the symbol-mode-precision identity (0.108667ms)
✔ ladder option persistence rejects unknown mode and skips incomplete context (0.121208ms)
✔ new precision profiles do not inherit legacy symbol-only values (0.065292ms)
✔ storage events accept six mode-scoped keys and reject legacy shared keys (0.796459ms)
✔ ladder execution and UI updates use one captured mode-symbol-precision context (0.951666ms)
✔ open and close ladder percentage rows share the quantity label (0.315417ms)
✔ ladder quantity levels and step options share one stable five-slot grid (0.735458ms)
✔ close ladder buttons match the Binance native long-short order (0.229667ms)
✔ close side buttons match the Binance native long-short order (0.21275ms)
✔ maps open and close ladder actions to order direction specs (1.416167ms)
✔ rejects unknown ladder actions and resolves percent source by mode (0.101125ms)
✔ auto-fits ladder percent before reducing requested levels (0.539666ms)
✔ auto-fits ladder levels when keeping requested levels needs too much percent (0.119041ms)
✔ auto-fit recomputes the minimum quantity for retained open ladder levels (0.156209ms)
✔ finds current Binance open-order rows from their semantic cancel action (183.572042ms)
✔ ignores hidden and unrelated SVG actions instead of treating list wrappers as rows (12.788625ms)
✔ classifies localized and English order feedback (2.173ms)
✔ does not acknowledge ladder submission without new success feedback (0.5015ms)
✔ acknowledges only new success feedback and surfaces failure text (0.090916ms)
✔ recognizes reduce-only failures caused by existing open orders (0.148166ms)
✔ recognizes open ladder capacity failures only when feedback points to open orders (0.148041ms)
✔ reads Binance API error codes without depending on localized messages (0.145708ms)
✔ recognizes only the verified Binance place-order success payload contract (0.085917ms)
✔ recognizes only verified Binance Post Only maker rejection codes (0.059375ms)
✔ recognizes Post Only maker-execution rejection feedback without exact-message matching (0.347125ms)
✔ does not infer maker-price conflicts from generic or unrelated rejection feedback (0.215ms)
✔ infers orderbook display step from adjacent visible prices (2.40725ms)
✔ calculates missing display-step prices by side (1.061417ms)
✔ plans buffered maker prices from displayed depth and inferred display step (0.640042ms)
✔ uses UI display step instead of exchange tick size assumptions (0.1265ms)
✔ reprices only remaining ladder orders and preserves quantities (0.211208ms)
✔ remaining ladder repricing rejects incomplete or invalid progress (0.372125ms)
✔ open side is stored independently for each symbol (0.552625ms)
✔ close side is stored independently for each symbol (0.080625ms)
✔ open and close sides use separate storage namespaces (0.436167ms)
✔ missing symbol reads the fallback without writing a global key (0.58075ms)
✔ symbol-scoped side keys are recognized for storage event refreshes (0.1115ms)
✔ keeps only the four smallest exact native precision shortcuts (2.04625ms)
✔ compacts long precision labels without changing the selected native value (0.144958ms)
✔ selects only an exact native decade precision target (0.3225ms)
✔ rejects unsupported precision adjustment directions (0.58575ms)
✔ collects only non-zero price moves from consecutive observations (0.305042ms)
✔ keeps multiple sampling rounds bounded and newest samples last (0.442916ms)
✔ recommends precision from accumulated effective price movement instead of tick size (0.500708ms)
✔ prefers the lower effective movement over larger trade jumps (0.244583ms)
✔ uses the dominant precision bucket instead of the smallest observed move (0.192791ms)
✔ does not recommend precision until enough multi-sample evidence exists (0.135ms)
✔ does not treat display precision fallback as a recommendation (0.871666ms)
✔ does not keep a stale sampling label busy after the sampler has stopped (0.392541ms)
✔ keeps precision controls busy only for an active or scheduled sample (0.075584ms)
✔ converts decimal quantities to exchange step counts (0.986667ms)
✔ allocates exact ladder quantity splits (1.719916ms)
✔ reduces ladder level count when total quantity cannot satisfy desired levels (0.195041ms)
✔ returns null when even one ladder level cannot satisfy minimum quantity (0.084208ms)
✔ checks decimal positivity and minimum thresholds (0.122625ms)
✔ parses futures trading page paths (0.8725ms)
✔ rejects Binance futures non-trading paths (0.085542ms)
✔ identifies only futures trading page paths (0.072041ms)
✔ test runner is wired (0.436041ms)
✔ source and generated userscript versions stay synchronized (0.9645ms)
✔ symbol-change polling is stopped while the tab is hidden (0.75125ms)
✔ permanent trade-mode observer is scoped to the trade tab root (0.154333ms)
✔ close snapshot validation refreshes button scope before checking close actions (0.759334ms)
✔ cancel-symbol flow restores temporary symbol filter through cleanup path (0.537375ms)
✔ expanded ladder panel avoids rebuilding unchanged body markup (0.232542ms)
✔ panel primary values and ladder selections share the Binance emphasis standard (0.617542ms)
✔ panel buttons inherit one scoped disabled-state contract (0.338541ms)
✔ route watcher owns non-trading page pause instead of business timers spinning forever (0.206458ms)
✔ trade mode and Post Only switches wait for observed state instead of fixed sleeps (0.342125ms)
✔ labeled quantity matching resets its global regexp for every DOM node (0.17675ms)
✔ visible SVG controls do not require offset dimensions (0.066542ms)
✔ ladder retries with restricted open-order replacement after supported feedback (0.337375ms)
✔ open and close ladders reprice only remaining orders after explicit maker conflicts (0.756084ms)
✔ stable panel renders avoid repeated orderbook scans and layout writes (0.375125ms)
✔ dynamic panel text keeps fixed single-line slots (0.8965ms)
✔ panel keeps controls in cohesive ordered semantic groups (1.682666ms)
✔ multiplier row reads as a labeled value followed by decrement and increment controls (0.411ms)
✔ multiplier calculation keeps the formula primary and separates the notional constraint visually (0.272625ms)
✔ direction selector is a compact mutually exclusive radio group (0.490125ms)
✔ ladder feedback labels captured API codes without exposing bare numbers (0.193042ms)
✔ ladder minimum quantity failure explains safe manual options (1.211333ms)
✔ ladder actions keep only their final UI feedback visible for a minimum window (0.72525ms)
✔ open ladder stops immediately only for a confirmed zero available balance (0.209709ms)
✔ ladder replacement cancels visible current-symbol same-direction rows up to planned quantity (1.365917ms)
✔ bulk cancel hides TradingView orders before opening the native dialog and restores them independently (2.130958ms)
✔ bulk cancel distinguishes native confirm from cancellation before clear polling (0.404875ms)
✔ TradingView showOrders reload recovery is journaled, bounded, and retried only from startup state (0.604042ms)
✔ cancel current-symbol open orders wait for confirmed clearing before restoring page state (0.497417ms)
✔ cancel current-symbol open orders are single-flight and follow the native dialog lifecycle (0.999292ms)
✔ stable panel refreshes avoid writing unchanged text and state attributes (0.233125ms)
✔ orderbook precision recommendation marks one shortcut without applying it automatically (2.4865ms)
✔ close state is committed only for the currently observed symbol (0.607625ms)
✔ close execution and close-ladder sizing reject display cache (0.608792ms)
✔ confirmed close-quantity mutations bypass the generic trade UI debounce (0.443209ms)
✔ pending close actions report position confirmation without starting execution (0.523417ms)
✔ cancel flow rechecks the captured symbol before destructive click and cleanup (0.552708ms)
✔ multiplier edits retain their captured symbol, mode, and orderbook precision (0.632875ms)
✔ panel numeric options wait for a complete mode-symbol-precision context (0.219875ms)
✔ precision changes invalidate edits and immediately rerender the panel (0.142458ms)
✔ ladder plans fail closed when orderbook precision changes (0.13075ms)
✔ single-order sizing and submission retain the captured orderbook precision (0.141833ms)
✔ precision shortcut selection and sampling do not commit after a symbol switch (0.241458ms)
✔ busy leverage reset retains and replays the latest symbol request (0.086208ms)
✔ auto leverage reset is authorized by a fresh current-symbol position response (0.29225ms)
✔ account position count changes schedule symbol-specific API checks (0.1675ms)
✔ panel insertion point is immediately before the native trade-mode row (67.202875ms)
✔ English trade-mode labels use the same panel insertion contract (9.099334ms)
✔ trade-mode parsing rejects action labels instead of guessing a mode (0.085416ms)
✔ reads the exact Chinese and English available-balance contract (11.404667ms)
✔ rejects missing, malformed, or ambiguous available-balance contracts (5.570333ms)
✔ panel spacer is restored before native trade mode after a rerender moves it (7.232334ms)
✔ floating panel layout follows anchor movement without changing its size contract (0.144334ms)
✔ floating panel layout rejects a hidden anchor (0.064625ms)
✔ trade form mutation wait resolves as soon as the requested state is selected (5.47675ms)
✔ trade form mutation wait returns the final state at its deadline (11.351458ms)
✔ unexpected trade-mode structure is rejected instead of inserting at a guessed location (4.761875ms)
✔ trade form root ignores duplicated Binance tab-pane IDs (7.715667ms)
✔ trade form root observes live position state after React replaces descendants (7.799542ms)
✔ recognizes only close-quantity mutations as a confirmed close snapshot (8.721625ms)
✔ visible chart orders are hidden and restored to their exact original state (1.617875ms)
✔ an already-hidden chart is left unchanged (0.155375ms)
✔ a rejected hide remains marked for cleanup (2.6565ms)
✔ invalid TradingView contracts and targets fail explicitly (0.200625ms)
✔ a replaced active chart is rejected without writing the replacement (0.114666ms)
✔ target validation follows the active chart instead of surrounding toolbar DOM (0.134542ms)
✔ locates the one TradingView API used by TradingView and Basic chart modes (82.252917ms)
✔ target discovery does not depend on the native chart settings menu (9.904584ms)
✔ find waits for the visible chart root and TradingView API (24.672833ms)
✔ get rejects an unavailable TradingView target (7.458375ms)
✔ target discovery rejects ambiguous chart roots or TradingView APIs (23.5735ms)
✔ covering array deterministically covers every valid pair with fewer scenarios (20.724625ms)
✔ covering array derives requirements only from valid constrained scenarios (0.440667ms)
✔ covering array rejects malformed axes and impossible constraints (0.374291ms)
✔ cancel UI matrix covers every declared pair without the Cartesian product (38.113833ms)
✔ shared Binance futures route helper owns route parsing logic (5.676917ms)
✔ orderbook trade source imports shared Binance futures route helper (2.672959ms)
✔ trading data source imports shared Binance futures route helper (9.048625ms)
✔ CoinMarketCap data source imports shared Binance futures route helper (4.248375ms)
✔ Brooks media audit normalizes titles and version suffixes (0.972333ms)
✔ Brooks media audit parses local video and subtitle filenames (0.669792ms)
✔ Brooks media audit distinguishes current exact files from local variants (1.783708ms)
✔ Brooks media audit matches records whose media title already ends with a video extension (1.309792ms)
✔ Brooks media audit keeps caption download metadata when only the current video is missing (0.160792ms)
✔ Brooks media audit builds quoted yt-dlp commands (0.063084ms)
Imported latest Brooks media index: moved /var/folders/99/d7dxx5j94_x8n09snmknq0x80000gn/T/brooks-audit-latest-test-KPl8uz/reports/brooks-media-index-2026-06-03T104215Z.json
{
"records": 1,
"completed": true,
"failures": 0,
"missingIndexes": 0,
"localFiles": 0,
"currentComplete": 0,
"missingCurrentVideo": 1,
"missingCurrentEn": 1,
"missingCurrentZh": 1,
"needingAnyDownload": 1,
"withLocalVariants": 0
}
Wrote /var/folders/99/d7dxx5j94_x8n09snmknq0x80000gn/T/brooks-audit-latest-test-KPl8uz/reports/brooks-media-audit-2026-06-03T104215Z.json
✔ Brooks media audit can import the latest downloaded index before auditing (30.867458ms)
✔ Brooks media download builds limited Chinese subtitle tasks and skips existing files (1.2505ms)
✔ Brooks media download validates VTT responses before writing final files (13.724208ms)
✔ Brooks media download classifies missing Chinese captions when English captions exist (1.116166ms)
✔ Brooks media download rejects non-VTT error pages (0.334ms)
✔ Brooks media download builds video tasks for yt-dlp dry runs (0.15825ms)
✔ Brooks media download executes one video task through yt-dlp args (0.147125ms)
✔ Brooks media download can attach forced caption refresh tasks to video downloads (0.183417ms)
✔ Brooks media download attaches old variant archive metadata to video tasks (0.160416ms)
✔ Brooks media download builds existing old variant archive tasks from audit items (0.112541ms)
✔ Brooks media download preflights old variant archive batches before moving files (6.672667ms)
✔ Brooks media download rejects duplicate old variant archive targets (5.6075ms)
✔ Brooks media download archives old variant files without overwriting targets (12.430833ms)
✔ Brooks media download detects whether yt-dlp is available (0.285167ms)
✔ Brooks media index import builds a flat timestamped report filename (1.894125ms)
✔ Brooks media index import derives the default report directory from the user home (0.082541ms)
✔ Brooks media index import moves the latest completed export into the flat reports directory (17.96025ms)
✔ Brooks media index import removes duplicate downloads when the report already exists (13.196167ms)
✔ external downloader preserves the complete tokenized m3u8 source URL (0.69075ms)
✔ frame messages use an explicit parent origin and accept only the matching document iframe (69.31975ms)
✔ XHR interception forwards the complete open argument list (0.254959ms)
✔ Brooks course exporter collects unique course video links from the index page (9.406334ms)
✔ Brooks media index records derive current m3u8, caption URLs, and yt-dlp output (0.406625ms)
✔ Brooks media export payload marks incomplete exports and missing indexes (0.207292ms)
✔ Brooks media export payload includes elapsed runtime metadata (0.108542ms)
✔ Brooks media export filename includes a collision-resistant timestamp (0.258583ms)
✔ Brooks media export elapsed runtime excludes paused wall-clock time (0.139875ms)
✔ Brooks media export parses page HTML and builds a direct Bunny embed URL (12.802625ms)
✔ Brooks media export accepts direct Bunny iframe m3u8 messages only for pending page (106.975792ms)
✔ Brooks media export status separates success, failures, current page, and elapsed time (0.342542ms)
✔ Brooks media export status prompts failure recovery after collection finishes (0.077083ms)
✔ Brooks media export status truncates very long page labels (0.054541ms)
✔ Brooks course index page renders a media export panel without starting collection (27.978583ms)
✔ Brooks media export panel keeps stable dimensions while status text changes (27.022208ms)
✔ Brooks media export primary button toggles start, pause, and resume labels (56.245209ms)
✔ Brooks media export reset clears saved progress and returns to initial discovered state (29.932792ms)
✔ Brooks media export hides reset after a complete successful collection (26.087916ms)
✔ Brooks media export explains reset only when discarding progress is useful (25.573125ms)
✔ Brooks media export retries only failed pages and keeps successful records (71.161042ms)
✔ Brooks media export does not offer failed retry before collection is complete (48.407916ms)
✔ Brooks media export retry drains queue for same-origin record messages (699.430416ms)
✔ Brooks media export status refreshes elapsed time while waiting for a page (1135.469334ms)
✔ Brooks media export iframe uses an in-viewport player-sized frame for media detection (49.797042ms)
✔ userscript dashboard icons are embedded and do not depend on GitHub avatar loading (8.17975ms)
ℹ tests 297
ℹ suites 0
ℹ pass 297
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 4810.66825 (297 passed)
Running 45 tests using 1 worker
✓ 1 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-01 preserves the cancel-current-symbol invariants (614ms)
✓ 2 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-02 preserves the cancel-current-symbol invariants (557ms)
✓ 3 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-03 preserves the cancel-current-symbol invariants (474ms)
✓ 4 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-04 preserves the cancel-current-symbol invariants (336ms)
✓ 5 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-05 preserves the cancel-current-symbol invariants (261ms)
✓ 6 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-06 preserves the cancel-current-symbol invariants (311ms)
✓ 7 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-07 preserves the cancel-current-symbol invariants (287ms)
✓ 8 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-08 preserves the cancel-current-symbol invariants (1.6s)
✓ 9 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-09 preserves the cancel-current-symbol invariants (264ms)
✓ 10 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-10 preserves the cancel-current-symbol invariants (346ms)
✓ 11 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-11 preserves the cancel-current-symbol invariants (294ms)
✓ 12 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-12 preserves the cancel-current-symbol invariants (261ms)
✓ 13 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-13 preserves the cancel-current-symbol invariants (313ms)
✓ 14 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-14 preserves the cancel-current-symbol invariants (330ms)
✓ 15 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-15 preserves the cancel-current-symbol invariants (278ms)
✓ 16 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-16 preserves the cancel-current-symbol invariants (338ms)
✓ 17 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-17 preserves the cancel-current-symbol invariants (253ms)
✓ 18 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-18 preserves the cancel-current-symbol invariants (286ms)
✓ 19 e2e/binance-orderbook/specs/cancel-covering-matrix.pw.js:43:3 › pairwise-19 preserves the cancel-current-symbol invariants (329ms)
✓ 20 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:43:1 › no position and no orders returns immediate stable no-order feedback (481ms)
✓ 21 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:61:1 › other-symbol position and orders never open a current-symbol cancel dialog (317ms)
✓ 22 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:79:1 › cancelling the native dialog preserves current and other orders and restores UI (344ms)
✓ 23 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:108:1 › confirming with mixed-symbol orders clears only the current symbol (1.6s)
✓ 24 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:128:1 › an originally enabled symbol filter remains enabled after confirmation (1.6s)
✓ 25 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:148:1 › the cancel workflow remains single-flight during rapid repeated clicks (444ms)
✓ 26 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:169:3 › closing the native dialog with Escape is a cancellation and restores UI (312ms)
✓ 27 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:169:3 › closing the native dialog with backdrop is a cancellation and restores UI (329ms)
✓ 28 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:199:1 › a BFCache pagehide does not abort the active native dialog (329ms)
✓ 29 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:219:1 › a real pagehide aborts dialog tracking without mutating orders (279ms)
✓ 30 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:242:1 › a missing native dialog stops cleanly and restores temporary UI state (2.6s)
✓ 31 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:263:3 › an invalid extraAction dialog contract fails explicitly and preserves recovery state (310ms)
✓ 32 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:263:3 › an invalid missingPrimary dialog contract fails explicitly and preserves recovery state (270ms)
✓ 33 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:285:1 › a delayed confirmation keeps visible progress and clears only the current symbol (1.9s)
✓ 34 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:305:1 › dialog tracking survives React replacing the native dialog subtree (403ms)
✓ 35 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:327:1 › a confirmed dialog that does not clear current orders reports incomplete cancellation (7.2s)
✓ 36 e2e/binance-orderbook/specs/cancel-current-symbol.pw.js:349:1 › a symbol change before the dialog decision stops the captured-symbol workflow (925ms)
✓ 37 e2e/binance-orderbook/specs/control-flows.pw.js:25:1 › native open and close tabs drive one stable panel direction selector (377ms)
✓ 38 e2e/binance-orderbook/specs/control-flows.pw.js:63:1 › a precision shortcut selects the exact native orderbook option once (6.6s)
✓ 39 e2e/binance-orderbook/specs/control-flows.pw.js:94:1 › starting a ladder disables every start action and exposes one stop control (1.8s)
✓ 40 e2e/binance-orderbook/specs/control-flows.pw.js:132:1 › a complete ladder submits the planned five native orders and restores controls (4.1s)
✓ 41 e2e/binance-orderbook/specs/control-flows.pw.js:158:1 › auto leverage resets only a flat current symbol and ignores other-symbol positions (329ms)
✓ 42 e2e/binance-orderbook/specs/control-flows.pw.js:176:1 › auto leverage preserves the current leverage while the current symbol has a position (689ms)
✓ 43 e2e/binance-orderbook/specs/panel-visual-contract.pw.js:22:1 › open expanded panel matches the stable visual contract (6.5s)
✓ 44 e2e/binance-orderbook/specs/panel-visual-contract.pw.js:30:1 › close expanded panel matches the disabled-state visual contract (6.5s)
✓ 45 e2e/binance-orderbook/specs/panel-visual-contract.pw.js:42:1 › collapsed ladder keeps the compact panel visual contract (6.5s)
45 passed (1.0m) (45 passed)