import assert from 'node:assert/strict' import { MapOperationsClient, MapOperationsPanel, validCatalog, validOperation } from '../web/js/map-operations.js' import { NavigationPage } from '../web/js/navigation.js' const flush = async () => { for (let i = 0; i < 8; i++) await Promise.resolve() } const region = { token: 'us_state.IL', name: 'Illinois', bounds: [36, -92, 44, -86], groups: 12, available: true } const unsupported = { token: 'nation.bad', name: 'Unsupported', bounds: [0, 0, 0, 0], groups: 0, available: false, unavailable: 'invalid_bounds' } const catalog = { regions: [region, unsupported], maxGroups: 64, maxTransferBytes: 8589934592, maxNewDiskBytes: 17179869184, selectedGeneration: '' } const status = { schemaVersion: 1, ownerSession: 's1', operationId: null, state: 'idle', regionToken: null, bounds: null, completedGroups: 0, totalGroups: 0, transferredBytes: 0, transferBudgetBytes: 0, preparedGeneration: null, selectedGeneration: '', errorCode: null, selectedForNextShadowStart: false } assert.equal(validCatalog(catalog), true) assert.equal(validCatalog({ ...catalog, regions: [{ ...region, available: false, unavailable: 'too_large' }] }), true) assert.equal(validCatalog({ ...catalog, regions: [{ ...region, token: '