From 0b47dca246df1d832a99239f7dcfebb61e8a7ab7 Mon Sep 17 00:00:00 2001 From: LiZhenhai-MBP14 <5935568+jackhai9@users.noreply.github.com> Date: Fri, 28 Aug 2026 11:40:03 +0800 Subject: [PATCH] fix: coalesce Binance chart saves during bulk cancel --- .../fixtures/binance-futures.js | 98 +++- .../specs/cancel-covering-matrix.pw.js | 15 + .../specs/cancel-current-symbol.pw.js | 44 +- scripts/binance-orderbook-trade.user.js | 527 +++++++++++++----- ...s-recovery.js => chart-orders-recovery.js} | 16 +- .../core/chart-save-coalescer.js | 169 ++++++ .../core/tradingview-orders.js | 84 --- .../dom/chart-orders.js | 111 ++++ src/binance-orderbook-trade/index.user.js | 292 +++++++--- .../chart-orders.test.js | 198 +++++++ .../chart-orders-recovery.test.js | 48 +- .../chart-save-coalescer.test.js | 241 ++++++++ .../source-regressions.test.js | 102 ++-- .../tradingview-orders.test.js | 124 ----- 14 files changed, 1552 insertions(+), 517 deletions(-) rename src/binance-orderbook-trade/core/{tradingview-orders-recovery.js => chart-orders-recovery.js} (60%) create mode 100644 src/binance-orderbook-trade/core/chart-save-coalescer.js delete mode 100644 src/binance-orderbook-trade/core/tradingview-orders.js create mode 100644 src/binance-orderbook-trade/dom/chart-orders.js create mode 100644 test/dom/binance-orderbook-trade/chart-orders.test.js create mode 100644 test/unit/binance-orderbook-trade/chart-save-coalescer.test.js delete mode 100644 test/unit/binance-orderbook-trade/tradingview-orders.test.js diff --git a/e2e/binance-orderbook/fixtures/binance-futures.js b/e2e/binance-orderbook/fixtures/binance-futures.js index 9c5057c..43ecd8d 100644 --- a/e2e/binance-orderbook/fixtures/binance-futures.js +++ b/e2e/binance-orderbook/fixtures/binance-futures.js @@ -34,6 +34,10 @@ export function renderBinanceFuturesFixture(scenario) { .row-content { display: flex; gap: 16px; } .emit-price { display: inline-block; min-width: 70px; min-height: 20px; } .chart-widget-root { width: 700px; height: 300px; margin-top: 20px; border: 1px solid #d8dce1; } + .chart-toolbar { display: flex; align-items: center; gap: 12px; height: 32px; padding: 6px; } + .chart-toolbar .bn-tooltips-wrap { display: inline-block; min-width: 24px; min-height: 18px; } + .chart-orders-popover { position: absolute; z-index: 50; display: none; padding: 8px; background: #fff; border: 1px solid #d8dce1; } + .chart-orders-popover.active { display: block; } .chart-widget-root iframe { width: 100%; height: 100%; border: 0; } .react-grid-item { margin: 16px 20px; min-height: 240px; padding: 12px; } #account-tabs { margin-bottom: 12px; } @@ -70,7 +74,18 @@ export function renderBinanceFuturesFixture(scenario) { 81.0281.03 81.0481.05 - + +