Proof: npm test passed 166/166; npm run operator-dashboard:build passed; focused dashboard static tests cover removing the 20-row asset registry cap and requesting 250 catalog rows. Assumptions: Current 1Click import has 163 supported tokens, so a 250-row dashboard catalog cap exposes the full current catalog while keeping the bootstrap bounded. Still fake: no live funds movement; imported assets remain catalog-visible only unless explicitly inventory/trading enabled.
This commit is contained in:
parent
95a8e239fd
commit
266d149b33
5 changed files with 13 additions and 3 deletions
|
|
@ -521,7 +521,7 @@ async function loadBootstrapPayload({ auth, page, pageSize }) {
|
|||
[],
|
||||
sourceErrors,
|
||||
),
|
||||
safeSourceLoad('asset_catalog', () => loadAssetCatalogSummary(pool, { limit: 80 }), null, sourceErrors),
|
||||
safeSourceLoad('asset_catalog', () => loadAssetCatalogSummary(pool, { limit: 250 }), null, sourceErrors),
|
||||
safeSourceLoad('pair_config', () => loadPairConfigSummary(pool), null, sourceErrors),
|
||||
loadServiceSnapshots(),
|
||||
safeSourceLoad('near_intents_status', () => loadNearIntentsStatus(runtimeConfig), null, sourceErrors),
|
||||
|
|
|
|||
|
|
@ -632,7 +632,7 @@ export function createTradingConfigStore({
|
|||
};
|
||||
}
|
||||
|
||||
export async function loadAssetCatalogSummary(pool, { limit = 50 } = {}) {
|
||||
export async function loadAssetCatalogSummary(pool, { limit = 250 } = {}) {
|
||||
await ensureTradingConfigSchema(pool);
|
||||
const [snapshot, countResult] = await Promise.all([
|
||||
loadTradingConfig(pool),
|
||||
|
|
|
|||
|
|
@ -333,7 +333,7 @@ function AssetCatalogSection({ assetCatalog, onControl }) {
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{items.length ? items.slice(0, 20).map((asset) => (
|
||||
{items.length ? items.map((asset) => (
|
||||
<tr key={asset.asset_id || asset.assetId}>
|
||||
<td>
|
||||
<div>{asset.label || asset.symbol}</div>
|
||||
|
|
|
|||
|
|
@ -14,3 +14,8 @@ test('operator dashboard control proxy catches upstream failures before sending
|
|||
assert.match(source, /buildDashboardControlErrorResponse/);
|
||||
assert.match(source, /failure.statusCode/);
|
||||
});
|
||||
|
||||
test('operator dashboard requests enough asset catalog rows for the current 1Click import', () => {
|
||||
assert.match(source, /loadAssetCatalogSummary\(pool,\s*\{\s*limit:\s*250\s*\}\)/);
|
||||
assert.doesNotMatch(source, /loadAssetCatalogSummary\(pool,\s*\{\s*limit:\s*80\s*\}\)/);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -58,6 +58,11 @@ test('dashboard UI exposes official NEAR upstream status separately from local f
|
|||
assert.match(serviceCardSource, /decisive_reason/);
|
||||
});
|
||||
|
||||
test('asset registry table renders the loaded catalog without a hidden 20 row cap', () => {
|
||||
assert.match(strategySource, /items\.map\(\(asset\)/);
|
||||
assert.doesNotMatch(strategySource, /items\.slice\(0,\s*20\)\.map/);
|
||||
});
|
||||
|
||||
|
||||
test('system page exposes deduped environmental conditions history', () => {
|
||||
assert.match(systemSource, /Environmental conditions/);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue