diff --git a/src/operator-dashboard/static/pages/StrategyPage.jsx b/src/operator-dashboard/static/pages/StrategyPage.jsx index 801eed5..c1723f9 100644 --- a/src/operator-dashboard/static/pages/StrategyPage.jsx +++ b/src/operator-dashboard/static/pages/StrategyPage.jsx @@ -474,7 +474,7 @@ function PairConfigSection({ assetCatalog, pairConfig, onControl }) {
Pair config
-

Directed pairs and active strategy versions

+

Add, pause, and tune directed pairs

Loaded {pairConfig?.loaded_at ? formatTimestamp(pairConfig.loaded_at) : 'unavailable'}
@@ -527,7 +527,7 @@ function PairConfigSection({ assetCatalog, pairConfig, onControl }) {
@@ -645,10 +645,10 @@ export default function StrategyPage({ strategy, onControl }) {
- - + +
diff --git a/test/operator-dashboard-ui-static.test.mjs b/test/operator-dashboard-ui-static.test.mjs index f3c9ce7..3746508 100644 --- a/test/operator-dashboard-ui-static.test.mjs +++ b/test/operator-dashboard-ui-static.test.mjs @@ -66,12 +66,19 @@ test('asset registry table renders the loaded catalog without a hidden 20 row ca test('strategy page exposes pair activation, pause, edge, and deposit address controls', () => { assert.match(strategySource, /set-pair-mode/); assert.match(strategySource, /pause-pair/); - assert.match(strategySource, /Activate pair mode/); + assert.match(strategySource, /Add, pause, and tune directed pairs/); + assert.match(strategySource, /Add \/ activate pair/); assert.match(strategySource, /Edge bps for/); assert.match(strategySource, /deposit_address/); assert.match(strategySource, /Copy/); }); +test('pair controls are rendered before the long asset catalog table', () => { + assert.ok( + strategySource.indexOf(' { assert.match(systemSource, /Environmental conditions/);