From 8897e12714879e07f684a20d1533763586f48329 Mon Sep 17 00:00:00 2001 From: t8y2 Date: Wed, 23 Sep 2026 22:07:41 +0800 Subject: [PATCH] test: drop source-text assertion tests and merge locale checks --- .../__tests__/searchShortcutRouting.spec.ts | 58 -- .../__tests__/AiChartRendererLayout.spec.ts | 29 - .../consul/__tests__/ConsulWatchViews.spec.ts | 221 ------- .../diff/__tests__/SchemaDiffDialog.spec.ts | 234 -------- .../__tests__/AiAssistant.autoRouting.spec.ts | 172 ------ .../__tests__/AiAssistant.chatTitle.spec.ts | 75 --- .../AiAssistant.clearAndCancel.spec.ts | 548 ------------------ .../AiAssistant.conversationBinding.spec.ts | 105 +--- .../AiAssistant.conversationExport.spec.ts | 43 -- .../__tests__/AiAssistant.messageWrap.spec.ts | 16 - .../__tests__/AiAssistant.scrollRing.spec.ts | 70 --- .../AiAssistant.templateDefaults.spec.ts | 81 --- .../__tests__/EditorSearchPanel.spec.ts | 26 - ...gsDialog.aiConfigDeepLinkTabHijack.spec.ts | 35 -- ...itorSettingsDialog.aiTestIsolation.spec.ts | 14 - .../EditorSettingsDialog.applyError.spec.ts | 42 -- ...torSettingsDialog.choiceCardLayout.spec.ts | 140 ----- ...itorSettingsDialog.mcpQueryTimeout.spec.ts | 98 ---- ...ditorSettingsDialog.previewCleanup.spec.ts | 45 -- ...itorSettingsDialog.previewPosition.spec.ts | 222 ------- ...log.redisDatabaseDisplayLimitClamp.spec.ts | 25 - ...itorSettingsDialog.shortcutCapture.spec.ts | 46 -- ...gsDialog.shortcutCaptureInputWidth.spec.ts | 74 --- ...shortcutResetEditState.integration.spec.ts | 11 +- ...tingsDialog.shortcutResetEditState.spec.ts | 30 - ...og.shortcutScopeGroups.integration.spec.ts | 7 +- ...SettingsDialog.shortcutScopeGroups.spec.ts | 61 -- .../EditorSettingsDialog.unsavedClose.spec.ts | 52 -- .../QueryEditor.cteNavigationWiring.spec.ts | 189 ------ ...ueryEditor.imeCompletionAcceptance.spec.ts | 51 -- ....sqlServerRoutineDiagnosticsWiring.spec.ts | 37 -- .../__tests__/QueryEditorContextMenu.spec.ts | 140 ----- .../QueryEditorGotoLineWiring.spec.ts | 24 - .../EtcdDashboardConcurrency.spec.ts | 15 - .../__tests__/ExplainPlanNodeTree.spec.ts | 39 -- ...seExportDialog.destinationIdentity.spec.ts | 36 -- .../DataGridBatchPasteFromCell.spec.ts | 14 - .../DataGridCellDetailSelection.spec.ts | 62 -- .../DataGridColumnOrderSelection.spec.ts | 12 - .../__tests__/DataGridConditionEditor.spec.ts | 102 ---- .../grid/__tests__/DataGridDdlSearch.spec.ts | 34 -- .../DataGridDetailNavigation.spec.ts | 50 -- .../DataGridExternalResultScroll.spec.ts | 79 --- .../DataGridGoToColumnShortcut.spec.ts | 67 --- .../DataGridInfiniteScrollSort.spec.ts | 42 -- .../DataGridInitializationOrder.spec.ts | 39 -- .../__tests__/DataGridInlineBulkEdit.spec.ts | 27 - .../DataGridLargeValueReloadSql.spec.ts | 30 - .../DataGridLargeValueReplace.spec.ts | 23 - .../DataGridPaginationShortcuts.spec.ts | 13 - ...DataGridPendingRowFilterVisibility.spec.ts | 13 - .../DataGridReadonlyTextSelection.spec.ts | 11 - .../grid/__tests__/DataGridSaveReload.spec.ts | 48 -- .../DataGridSelectionGesture.spec.ts | 20 - .../grid/__tests__/DataGridSurfaces.spec.ts | 107 ---- .../DataGridViewSnapshotRestore.spec.ts | 119 ---- .../dataGridColumnLayoutPopover.spec.ts | 6 - .../kv/__tests__/KvKeyBrowserExport.spec.ts | 53 -- .../KvKeyBrowserSearchAndSplit.spec.ts | 68 --- .../kv/__tests__/KvKeyBrowserTtl.spec.ts | 19 - .../layout/__tests__/AppTabBar.spec.ts | 99 ---- .../__tests__/ContentArea.dataToolbar.spec.ts | 12 - .../__tests__/ContentArea.outputView.spec.ts | 51 -- .../ContentArea.tableImportEntry.spec.ts | 32 - .../ContentArea.unavailableDataReload.spec.ts | 22 - .../EditorGroupTabBar.groups.spec.ts | 243 -------- .../__tests__/EditorGroupTabBar.spec.ts | 51 -- .../layout/__tests__/SqlFilePanel.spec.ts | 71 --- .../__tests__/ToolbarUpdateIcon.spec.ts | 27 - .../appContentSurfaces.contract.spec.ts | 48 -- .../NacosAccessControlConsole.spec.ts | 76 --- .../__tests__/NacosAdminConsoleLayout.spec.ts | 255 -------- .../NacosAdminConsoleYamlDiagnostics.spec.ts | 50 -- .../__tests__/NacosRoleAccessControl.spec.ts | 88 --- .../objects/ObjectBrowserClipboard.spec.ts | 47 -- .../__tests__/DatabaseBrowserFallback.spec.ts | 11 - .../__tests__/DdlDialog.legacyScope.spec.ts | 14 - .../ObjectBrowser.crossDatabasePaste.spec.ts | 21 - .../ObjectBrowser.eventCreate.spec.ts | 69 --- ...ObjectBrowser.mongoCollectionStats.spec.ts | 28 - .../ObjectBrowser.schemaFallback.spec.ts | 54 -- ...ObjectBrowser.toolbarOverflowFloor.spec.ts | 34 -- ...tBrowser.verticalScrollbarViewport.spec.ts | 41 -- .../__tests__/ObjectBrowserExport.spec.ts | 44 -- .../ObjectBrowserMetadataRefresh.spec.ts | 68 --- .../ObjectBrowserScaffoldRefresh.spec.ts | 49 -- .../ObjectBrowserSearchPersistence.spec.ts | 55 -- .../ObjectBrowserViewportPersistence.spec.ts | 28 - .../plugins/PluginWorkbenchHost.spec.ts | 15 - .../PluginContributionsPanelBatch.spec.ts | 6 - .../RedisKeyBrowser.groupingToggle.spec.ts | 11 - .../RedisKeyBrowser.toolbarLayout.spec.ts | 56 -- .../ConnectionTree.arrowFocus.spec.ts | 35 -- .../ConnectionTree.collapsedSearch.spec.ts | 43 -- ...onnectionTree.locateCollapsedGroup.spec.ts | 20 - .../ConnectionTree.selectionPruning.spec.ts | 16 - .../SidebarTreeRuntimeHost.backupMenu.spec.ts | 11 - ...ebarTreeRuntimeHost.compileRefresh.spec.ts | 28 - ...RuntimeHost.createViewQuoteSetting.spec.ts | 27 - ...reeRuntimeHost.ddlQualifierSetting.spec.ts | 22 - ...arTreeRuntimeHost.executionIdOptIn.spec.ts | 11 - ...TreeRuntimeHost.objectCacheRefresh.spec.ts | 31 - .../VisibleNacosNamespacesDialog.spec.ts | 11 - .../__tests__/crossDatabaseTablePaste.spec.ts | 50 -- .../mongoCollectionImportExportMenu.spec.ts | 39 -- .../__tests__/SshHostKeyPromptDialog.spec.ts | 9 - ...bleStructureEditor.ddlSearchSource.spec.ts | 53 -- .../__tests__/DataTransferDialog.spec.ts | 124 ---- .../__tests__/buttonPressFeedback.spec.ts | 43 -- .../__tests__/dialogSurfaceOpacity.spec.ts | 21 - .../useCellDetailEditor.folding.spec.ts | 11 - .../useSaveSqlFolderSelection.spec.ts | 6 - .../useSidebarTreeExportRuntime.spec.ts | 38 -- .../agentOfflineExportParity.spec.ts | 55 -- .../agentOfflineImportParity.spec.ts | 55 -- .../__tests__/aiAutoRoutingParity.spec.ts | 62 -- .../aiPluginConversationParity.spec.ts | 39 -- .../__tests__/aiRichContentParity.spec.ts | 63 -- .../__tests__/cachedResultMessages.spec.ts | 45 -- .../i18n/__tests__/commonRefreshKey.spec.ts | 53 -- .../src/i18n/__tests__/consulUiParity.spec.ts | 117 ---- .../i18n/__tests__/customTypeMessages.spec.ts | 32 - .../i18n/__tests__/damengViewMessages.spec.ts | 31 - .../__tests__/executeShortcutHint.spec.ts | 18 - .../executionNamespaceParity.spec.ts | 54 -- .../i18n/__tests__/featureMessages.spec.ts | 154 +++++ .../mqttConnectionLabelParity.spec.ts | 104 ---- .../nacosContentReplaceParity.spec.ts | 38 -- .../__tests__/pluginBatchMessages.spec.ts | 24 - .../processListBatchTerminateMessages.spec.ts | 46 -- .../quickOpenNamespaceParity.spec.ts | 59 -- .../__tests__/sidebarSearchSkipParity.spec.ts | 71 --- .../__tests__/sqliteRebuildNotice.spec.ts | 37 -- .../i18n/__tests__/tabContextMenuKeys.spec.ts | 57 -- .../__tests__/tableInfoPinMessages.spec.ts | 44 -- .../transferBulkSelectParity.spec.ts | 47 -- .../__tests__/userAdminHostMessages.spec.ts | 26 - .../ai/addToAiDatabaseContext.spec.ts | 65 --- .../__tests__/ai/maxAgentTurnsRange.spec.ts | 21 - .../__tests__/app/rightSidebarPanels.spec.ts | 82 --- .../app/snippetMigrationCleanup.spec.ts | 30 - .../connectionDialog.deepLinkServices.spec.ts | 46 -- ...onnectionDialogDriverProfileConfig.spec.ts | 33 -- .../connectionDialogErrorLayout.spec.ts | 21 - ...nnectionDialogPluginTimeoutInherit.spec.ts | 62 -- .../connectionDialogTimeouts.spec.ts | 29 - .../connectionDialogXuguDatabase.spec.ts | 20 - .../connection/etcdConnectionDialog.spec.ts | 26 - .../gbase8sConnectionDialog.spec.ts | 4 - .../connection/h2ConnectionDialog.spec.ts | 32 - .../connection/jdbcxConnectionDialog.spec.ts | 27 - .../connection/nacosConnectionDialog.spec.ts | 133 ----- .../spannerConnectionDialog.spec.ts | 53 -- .../dataGrid/cellDetailPresentation.spec.ts | 8 - .../__tests__/dataGrid/customBasemap.spec.ts | 11 - .../dataGrid/dataGridCellTypeVisual.spec.ts | 26 - .../dataGrid/dataGridContextMenuState.spec.ts | 14 - .../dataGrid/dataGridCopyExtractor.spec.ts | 9 - .../dataGrid/dataGridPaintTheme.spec.ts | 24 - .../dataGrid/dataGridRuntime.spec.ts | 30 - .../editor/editorSearchSelection.spec.ts | 23 - .../lib/__tests__/editor/editorZoom.spec.ts | 14 - .../editor/queryEditorBlockComment.spec.ts | 20 - .../queryEditorCompletionKeymap.spec.ts | 3 - .../queryEditorCompletionSelection.spec.ts | 8 - .../queryEditorDatabaseNameCompletion.spec.ts | 71 --- .../queryEditorDiagnosticCaretAnchor.spec.ts | 12 - .../editor/queryEditorExecution.spec.ts | 161 ----- .../editor/queryEditorExtendSelection.spec.ts | 15 - .../__tests__/editor/queryEditorFocus.spec.ts | 27 - .../editor/queryEditorHoverDdlCopy.spec.ts | 37 -- .../editor/queryEditorJoinLines.spec.ts | 8 - .../editor/queryEditorLargePaste.spec.ts | 7 - .../editor/queryEditorLineComment.spec.ts | 24 - .../queryEditorPasteCaretResync.spec.ts | 10 - ...EditorSemanticHighlightPerformance.spec.ts | 45 -- .../editor/queryEditorSqlSignature.spec.ts | 22 - .../editor/queryEditorTextEdits.spec.ts | 11 - .../__tests__/mcp/mcpPolicySelection.spec.ts | 79 --- .../src/lib/__tests__/mq/mqListPanels.spec.ts | 63 -- .../plugins/pluginCenterIntegration.spec.ts | 98 ---- .../__tests__/redis/RedisExpiryWiring.spec.ts | 239 -------- .../redis/RedisValueViewer.redisJson.spec.ts | 319 ---------- .../sidebar/sidebarFilterGuards.spec.ts | 15 - .../sql/dorisCatalogCompletion.spec.ts | 29 - .../sql/oracleCompletionSession.spec.ts | 10 - .../lib/__tests__/sql/sqlFormatter.spec.ts | 8 - .../contentAreaObjectBrowserCatalog.spec.ts | 59 -- .../table/objectBrowserContextWatch.spec.ts | 22 - .../ai/__tests__/aiPromptSubmission.spec.ts | 9 - .../__tests__/aiRedisConsoleRouting.spec.ts | 79 --- .../__tests__/codeSnapshot.spec.ts | 10 - .../diagram/__tests__/fieldLineage.spec.ts | 7 - .../__tests__/editorSettingsDraft.spec.ts | 22 - .../__tests__/settingsPageNavigation.spec.ts | 40 -- .../settings/__tests__/settingsSearch.spec.ts | 54 -- ...ryStore.resultViewGenerationSource.spec.ts | 75 --- ...queryStore.sqlserverTraceLifecycle.spec.ts | 7 - .../queryStore.templateForceWordWrap.spec.ts | 14 - .../settingsStore.typeColorScheme.spec.ts | 10 - crates/ARCHITECTURE.md | 3 +- .../dbx-core/tests/agent_recovery_contract.rs | 18 - .../app-tests/aiAgentEventSession.test.ts | 24 - .../aiAssistantComposerLayout.test.ts | 94 --- .../app-tests/aiAssistantSendGuard.test.ts | 116 ---- .../app-tests/aiAssistantSkillEntry.test.ts | 51 -- packages/app-tests/aiMessageLayout.test.ts | 87 --- packages/app-tests/binaryCellDownload.test.ts | 26 - .../app-tests/canvasDataGridRenderer.test.ts | 9 - .../app-tests/codemirrorSqlDialect.test.ts | 13 - .../app-tests/dataGridBooleanColumn.test.ts | 37 -- .../app-tests/dataGridContextMenu.test.ts | 72 --- .../dataGridDefaultPlaceholder.test.ts | 13 - .../dataGridHeaderBackground.test.ts | 15 - .../app-tests/dataGridInfiniteScroll.test.ts | 10 - packages/app-tests/dataGridPagination.test.ts | 82 --- packages/app-tests/dataGridProps.test.ts | 32 - .../dataGridSearchStateRestore.test.ts | 50 -- .../dataGridTabSwitchScrollRestore.test.ts | 47 -- .../dataGridTransposeLifecycle.test.ts | 18 - .../app-tests/dataTabHeaderConnection.test.ts | 34 -- .../app-tests/databaseExportSnapshot.test.ts | 9 - .../app-tests/databaseSearchDialog.test.ts | 29 - .../app-tests/driverDownloadSource.test.ts | 26 - .../driverStoreInstallStatus.test.ts | 42 -- .../editorTabSwitchViewportRestore.test.ts | 81 --- .../editorToolbarContextSwitching.test.ts | 46 -- .../elasticsearchJsonResponse.test.ts | 10 - .../app-tests/externalSqlFileStartup.test.ts | 30 - .../app-tests/gridfsBrowserPagination.test.ts | 18 - .../app-tests/hbaseBrowserRefresh.test.ts | 43 -- .../app-tests/mongoSyntaxDiagnostics.test.ts | 6 - packages/app-tests/mqttPayloadCodec.test.ts | 12 - .../app-tests/objectBrowserTableInfo.test.ts | 18 - .../objectSourceOpenFeedback.test.ts | 89 --- packages/app-tests/phoenixConnection.test.ts | 13 - packages/app-tests/phoenixDriverStore.test.ts | 50 -- .../app-tests/postgresLegacyTlsI18n.test.ts | 21 - packages/app-tests/queryMessagesView.test.ts | 76 --- packages/app-tests/queryResultToolbar.test.ts | 253 -------- packages/app-tests/recentConnections.test.ts | 10 - packages/app-tests/redisValueSearch.test.ts | 54 -- .../app-tests/scheduledDatabaseBackup.test.ts | 13 - packages/app-tests/settingsStore.test.ts | 57 -- .../app-tests/settingsTransferPanel.test.ts | 31 - .../app-tests/sidebarContextMenuHost.test.ts | 167 ------ .../sidebarRuntimeDecomposition.test.ts | 61 -- .../app-tests/sidebarTreeAffordances.test.ts | 63 -- .../app-tests/sidebarTreeItemCleanup.test.ts | 56 -- .../app-tests/sqlFileExecutionDialog.test.ts | 36 -- .../sqlLibraryImportEncoding.test.ts | 39 -- packages/app-tests/sshConfigHosts.test.ts | 11 - packages/app-tests/syncTunnelProfiles.test.ts | 30 - .../app-tests/tableInfoDefaultValue.test.ts | 20 - .../tablePartitionsTabParity.test.ts | 58 -- .../tableStructureEditorState.test.ts | 26 - packages/app-tests/useFlatTree.test.ts | 9 - 257 files changed, 166 insertions(+), 12815 deletions(-) delete mode 100644 apps/desktop/src/__tests__/searchShortcutRouting.spec.ts delete mode 100644 apps/desktop/src/components/ai/rich/__tests__/AiChartRendererLayout.spec.ts delete mode 100644 apps/desktop/src/components/diff/__tests__/SchemaDiffDialog.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/AiAssistant.autoRouting.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/AiAssistant.chatTitle.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/AiAssistant.clearAndCancel.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/AiAssistant.conversationExport.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/AiAssistant.messageWrap.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/AiAssistant.scrollRing.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/AiAssistant.templateDefaults.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.aiConfigDeepLinkTabHijack.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.aiTestIsolation.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.applyError.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.choiceCardLayout.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.previewCleanup.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.previewPosition.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.redisDatabaseDisplayLimitClamp.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.shortcutCapture.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.shortcutCaptureInputWidth.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.shortcutResetEditState.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.shortcutScopeGroups.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.unsavedClose.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/QueryEditor.cteNavigationWiring.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/QueryEditor.imeCompletionAcceptance.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/QueryEditor.sqlServerRoutineDiagnosticsWiring.spec.ts delete mode 100644 apps/desktop/src/components/editor/__tests__/QueryEditorGotoLineWiring.spec.ts delete mode 100644 apps/desktop/src/components/etcd/__tests__/EtcdDashboardConcurrency.spec.ts delete mode 100644 apps/desktop/src/components/export/__tests__/DatabaseExportDialog.destinationIdentity.spec.ts delete mode 100644 apps/desktop/src/components/grid/__tests__/DataGridCellDetailSelection.spec.ts delete mode 100644 apps/desktop/src/components/grid/__tests__/DataGridColumnOrderSelection.spec.ts delete mode 100644 apps/desktop/src/components/grid/__tests__/DataGridDdlSearch.spec.ts delete mode 100644 apps/desktop/src/components/grid/__tests__/DataGridExternalResultScroll.spec.ts delete mode 100644 apps/desktop/src/components/grid/__tests__/DataGridInfiniteScrollSort.spec.ts delete mode 100644 apps/desktop/src/components/grid/__tests__/DataGridInitializationOrder.spec.ts delete mode 100644 apps/desktop/src/components/grid/__tests__/DataGridLargeValueReloadSql.spec.ts delete mode 100644 apps/desktop/src/components/grid/__tests__/DataGridLargeValueReplace.spec.ts delete mode 100644 apps/desktop/src/components/grid/__tests__/DataGridPendingRowFilterVisibility.spec.ts delete mode 100644 apps/desktop/src/components/grid/__tests__/DataGridSaveReload.spec.ts delete mode 100644 apps/desktop/src/components/grid/__tests__/DataGridSelectionGesture.spec.ts delete mode 100644 apps/desktop/src/components/grid/__tests__/DataGridViewSnapshotRestore.spec.ts delete mode 100644 apps/desktop/src/components/kv/__tests__/KvKeyBrowserExport.spec.ts delete mode 100644 apps/desktop/src/components/kv/__tests__/KvKeyBrowserSearchAndSplit.spec.ts delete mode 100644 apps/desktop/src/components/kv/__tests__/KvKeyBrowserTtl.spec.ts delete mode 100644 apps/desktop/src/components/layout/__tests__/AppTabBar.spec.ts delete mode 100644 apps/desktop/src/components/layout/__tests__/ContentArea.dataToolbar.spec.ts delete mode 100644 apps/desktop/src/components/layout/__tests__/ContentArea.outputView.spec.ts delete mode 100644 apps/desktop/src/components/layout/__tests__/ContentArea.tableImportEntry.spec.ts delete mode 100644 apps/desktop/src/components/layout/__tests__/ContentArea.unavailableDataReload.spec.ts delete mode 100644 apps/desktop/src/components/layout/__tests__/EditorGroupTabBar.spec.ts delete mode 100644 apps/desktop/src/components/layout/__tests__/SqlFilePanel.spec.ts delete mode 100644 apps/desktop/src/components/layout/__tests__/appContentSurfaces.contract.spec.ts delete mode 100644 apps/desktop/src/components/nacos/__tests__/NacosAdminConsoleLayout.spec.ts delete mode 100644 apps/desktop/src/components/objects/ObjectBrowserClipboard.spec.ts delete mode 100644 apps/desktop/src/components/objects/__tests__/DatabaseBrowserFallback.spec.ts delete mode 100644 apps/desktop/src/components/objects/__tests__/ObjectBrowser.crossDatabasePaste.spec.ts delete mode 100644 apps/desktop/src/components/objects/__tests__/ObjectBrowser.eventCreate.spec.ts delete mode 100644 apps/desktop/src/components/objects/__tests__/ObjectBrowser.mongoCollectionStats.spec.ts delete mode 100644 apps/desktop/src/components/objects/__tests__/ObjectBrowser.schemaFallback.spec.ts delete mode 100644 apps/desktop/src/components/objects/__tests__/ObjectBrowser.toolbarOverflowFloor.spec.ts delete mode 100644 apps/desktop/src/components/objects/__tests__/ObjectBrowser.verticalScrollbarViewport.spec.ts delete mode 100644 apps/desktop/src/components/objects/__tests__/ObjectBrowserExport.spec.ts delete mode 100644 apps/desktop/src/components/objects/__tests__/ObjectBrowserMetadataRefresh.spec.ts delete mode 100644 apps/desktop/src/components/objects/__tests__/ObjectBrowserScaffoldRefresh.spec.ts delete mode 100644 apps/desktop/src/components/objects/__tests__/ObjectBrowserSearchPersistence.spec.ts delete mode 100644 apps/desktop/src/components/objects/__tests__/ObjectBrowserViewportPersistence.spec.ts delete mode 100644 apps/desktop/src/components/redis/RedisKeyBrowser.groupingToggle.spec.ts delete mode 100644 apps/desktop/src/components/redis/__tests__/RedisKeyBrowser.toolbarLayout.spec.ts delete mode 100644 apps/desktop/src/components/sidebar/__tests__/ConnectionTree.arrowFocus.spec.ts delete mode 100644 apps/desktop/src/components/sidebar/__tests__/ConnectionTree.locateCollapsedGroup.spec.ts delete mode 100644 apps/desktop/src/components/sidebar/__tests__/ConnectionTree.selectionPruning.spec.ts delete mode 100644 apps/desktop/src/components/sidebar/__tests__/SidebarTreeRuntimeHost.backupMenu.spec.ts delete mode 100644 apps/desktop/src/components/sidebar/__tests__/SidebarTreeRuntimeHost.compileRefresh.spec.ts delete mode 100644 apps/desktop/src/components/sidebar/__tests__/SidebarTreeRuntimeHost.createViewQuoteSetting.spec.ts delete mode 100644 apps/desktop/src/components/sidebar/__tests__/SidebarTreeRuntimeHost.ddlQualifierSetting.spec.ts delete mode 100644 apps/desktop/src/components/sidebar/__tests__/SidebarTreeRuntimeHost.executionIdOptIn.spec.ts delete mode 100644 apps/desktop/src/components/sidebar/__tests__/SidebarTreeRuntimeHost.objectCacheRefresh.spec.ts delete mode 100644 apps/desktop/src/components/sidebar/__tests__/VisibleNacosNamespacesDialog.spec.ts delete mode 100644 apps/desktop/src/components/sidebar/__tests__/crossDatabaseTablePaste.spec.ts delete mode 100644 apps/desktop/src/components/sidebar/__tests__/mongoCollectionImportExportMenu.spec.ts delete mode 100644 apps/desktop/src/components/structure/__tests__/TableStructureEditor.ddlSearchSource.spec.ts delete mode 100644 apps/desktop/src/components/transfer/__tests__/DataTransferDialog.spec.ts delete mode 100644 apps/desktop/src/components/ui/button/__tests__/buttonPressFeedback.spec.ts delete mode 100644 apps/desktop/src/components/ui/dialog/__tests__/dialogSurfaceOpacity.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/agentOfflineExportParity.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/agentOfflineImportParity.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/aiAutoRoutingParity.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/aiPluginConversationParity.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/aiRichContentParity.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/cachedResultMessages.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/commonRefreshKey.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/consulUiParity.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/customTypeMessages.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/damengViewMessages.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/executionNamespaceParity.spec.ts create mode 100644 apps/desktop/src/i18n/__tests__/featureMessages.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/mqttConnectionLabelParity.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/nacosContentReplaceParity.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/pluginBatchMessages.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/processListBatchTerminateMessages.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/quickOpenNamespaceParity.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/sidebarSearchSkipParity.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/sqliteRebuildNotice.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/tabContextMenuKeys.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/tableInfoPinMessages.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/transferBulkSelectParity.spec.ts delete mode 100644 apps/desktop/src/i18n/__tests__/userAdminHostMessages.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/ai/addToAiDatabaseContext.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/app/rightSidebarPanels.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/app/snippetMigrationCleanup.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/connection/connectionDialog.deepLinkServices.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/connection/connectionDialogDriverProfileConfig.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/connection/connectionDialogErrorLayout.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/connection/connectionDialogPluginTimeoutInherit.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/connection/connectionDialogXuguDatabase.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/connection/jdbcxConnectionDialog.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/dataGrid/dataGridContextMenuState.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/editor/queryEditorDatabaseNameCompletion.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/editor/queryEditorHoverDdlCopy.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/editor/queryEditorSqlSignature.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/mq/mqListPanels.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/plugins/pluginCenterIntegration.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/redis/RedisExpiryWiring.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/sql/dorisCatalogCompletion.spec.ts delete mode 100644 apps/desktop/src/lib/__tests__/table/contentAreaObjectBrowserCatalog.spec.ts delete mode 100644 apps/desktop/src/lib/settings/__tests__/settingsPageNavigation.spec.ts delete mode 100644 apps/desktop/src/stores/__tests__/queryStore.resultViewGenerationSource.spec.ts delete mode 100644 crates/dbx-core/tests/agent_recovery_contract.rs delete mode 100644 packages/app-tests/aiAgentEventSession.test.ts delete mode 100644 packages/app-tests/aiAssistantComposerLayout.test.ts delete mode 100644 packages/app-tests/aiAssistantSendGuard.test.ts delete mode 100644 packages/app-tests/aiAssistantSkillEntry.test.ts delete mode 100644 packages/app-tests/aiMessageLayout.test.ts delete mode 100644 packages/app-tests/dataGridHeaderBackground.test.ts delete mode 100644 packages/app-tests/dataGridProps.test.ts delete mode 100644 packages/app-tests/dataGridSearchStateRestore.test.ts delete mode 100644 packages/app-tests/dataGridTabSwitchScrollRestore.test.ts delete mode 100644 packages/app-tests/dataTabHeaderConnection.test.ts delete mode 100644 packages/app-tests/databaseSearchDialog.test.ts delete mode 100644 packages/app-tests/driverDownloadSource.test.ts delete mode 100644 packages/app-tests/driverStoreInstallStatus.test.ts delete mode 100644 packages/app-tests/editorTabSwitchViewportRestore.test.ts delete mode 100644 packages/app-tests/editorToolbarContextSwitching.test.ts delete mode 100644 packages/app-tests/objectSourceOpenFeedback.test.ts delete mode 100644 packages/app-tests/phoenixDriverStore.test.ts delete mode 100644 packages/app-tests/postgresLegacyTlsI18n.test.ts delete mode 100644 packages/app-tests/settingsTransferPanel.test.ts delete mode 100644 packages/app-tests/sidebarRuntimeDecomposition.test.ts delete mode 100644 packages/app-tests/sidebarTreeItemCleanup.test.ts delete mode 100644 packages/app-tests/sqlFileExecutionDialog.test.ts delete mode 100644 packages/app-tests/sqlLibraryImportEncoding.test.ts delete mode 100644 packages/app-tests/syncTunnelProfiles.test.ts delete mode 100644 packages/app-tests/tablePartitionsTabParity.test.ts diff --git a/apps/desktop/src/__tests__/searchShortcutRouting.spec.ts b/apps/desktop/src/__tests__/searchShortcutRouting.spec.ts deleted file mode 100644 index cd1a48039..000000000 --- a/apps/desktop/src/__tests__/searchShortcutRouting.spec.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { readFileSync } from "node:fs"; -import { describe, expect, it } from "vitest"; - -const appSource = readFileSync(new URL("../App.vue", import.meta.url), "utf8"); -const sidebarSource = readFileSync(new URL("../components/layout/AppSidebar.vue", import.meta.url), "utf8"); -const connectionTreeSource = readFileSync(new URL("../components/sidebar/ConnectionTree.vue", import.meta.url), "utf8"); -const treeItemSource = readFileSync(new URL("../components/sidebar/TreeItem.vue", import.meta.url), "utf8"); -const contentAreaSource = readFileSync(new URL("../components/layout/ContentArea.vue", import.meta.url), "utf8"); -const dataGridSource = readFileSync(new URL("../components/grid/DataGrid.vue", import.meta.url), "utf8"); -const objectBrowserSource = readFileSync(new URL("../components/objects/ObjectBrowser.vue", import.meta.url), "utf8"); -const aiAssistantSource = readFileSync(new URL("../components/editor/AiAssistant.vue", import.meta.url), "utf8"); -const settingsSource = readFileSync(new URL("../components/editor/EditorSettingsDialog.vue", import.meta.url), "utf8"); -const sqlLibrarySource = readFileSync(new URL("../components/layout/SqlLibraryPanel.vue", import.meta.url), "utf8"); -const historySource = readFileSync(new URL("../components/editor/QueryHistory.vue", import.meta.url), "utf8"); -const driverStoreSource = readFileSync(new URL("../components/config/DriverStoreDialog.vue", import.meta.url), "utf8"); -const pluginCenterSource = readFileSync(new URL("../components/plugins/PluginContributionsPanel.vue", import.meta.url), "utf8"); -const connectionDialogSource = readFileSync(new URL("../components/connection/ConnectionDialog.vue", import.meta.url), "utf8"); - -describe("search shortcut focus routing", () => { - it("prioritizes the sidebar when Ctrl+F originates in the navigation area", () => { - expect(appSource).toMatch(/const target = e\.target instanceof Element \? e\.target : null;[\s\S]*target\?\.closest\("\[data-app-sidebar\]"\)[\s\S]*appSidebarRef\.value\?\.focusSearch\(target\)/); - expect(sidebarSource).toContain("
{ - expect(connectionTreeSource).toMatch(/function focusSearch\(target: Element \| null = null\)[\s\S]*data-sidebar-table-search-control[\s\S]*data-sidebar-table-search-parent-id/); - expect(treeItemSource).toMatch(/function onTableSearchControlKeydown\(event: KeyboardEvent\)[\s\S]*isFocusSearchShortcut\(event, settingsStore\.editorSettings\.shortcuts\)[\s\S]*data-sidebar-table-search-parent-id/); - expect(treeItemSource).toContain("data-sidebar-table-search-control"); - }); - - it("routes a focused table properties panel to its local search input", () => { - expect(contentAreaSource).toMatch(/function focusSearch\(target: Element \| null = null\)[\s\S]*dataGridRef\.value\?\.focusSearch\(target\)/); - expect(dataGridSource).toMatch(/function focusSearch\(target: Element \| null = null\)[\s\S]*data-table-info-drawer[\s\S]*data-table-info-search/); - expect(dataGridSource).toMatch(/focusSearch\(event\.target instanceof Element \? event\.target : document\.activeElement instanceof Element \? document\.activeElement : null\);/); - expect(objectBrowserSource).toMatch(/function focusSearch\(target: Element \| null = null\)[\s\S]*data-object-table-info-panel[\s\S]*data-table-info-search/); - }); - - it("routes auxiliary page and panel searches before the query surface", () => { - expect(appSource).toMatch(/function focusSearchInAuxiliarySurface\(target: Element \| null\)[\s\S]*data-connection-db-search[\s\S]*data-settings-global-search[\s\S]*data-driver-store-agent-search[\s\S]*data-plugin-marketplace-search[\s\S]*data-history-panel[\s\S]*data-sql-library-panel/); - expect(appSource).toMatch(/lastFocusedAuxiliarySurface[\s\S]*rememberAuxiliarySearchSurface[\s\S]*data-sql-library-panel/); - expect(appSource).toMatch(/const targetIsDocument = !target \|\| target === document\.body \|\| target === document\.documentElement;[\s\S]*if \(!targetIsDocument\) return false;/); - expect(appSource).toMatch(/lastFocusedSidebarSurface[\s\S]*rememberSidebarSearchSurface[\s\S]*data-app-sidebar/); - expect(appSource).toMatch(/function handleAuxiliarySearchKeydownCapture\(e: KeyboardEvent\)[\s\S]*focusSearchInAuxiliarySurface\(target\)[\s\S]*addEventListener\("keydown", handleAuxiliarySearchKeydownCapture, true\)/); - expect(appSource).toContain("aiAssistantRef.value.focusSearch()"); - expect(aiAssistantSource).toMatch(/function focusSearch\(\): boolean[\s\S]*setConversationListOpen\(true\)/); - expect(aiAssistantSource).toContain("data-ai-conversation-search"); - expect(settingsSource).toContain("data-settings-global-search"); - expect(sqlLibrarySource).toContain("data-sql-library-search"); - expect(historySource).toContain("data-history-search"); - expect(driverStoreSource).toContain("data-driver-store-agent-search"); - expect(pluginCenterSource).toContain("data-plugin-marketplace-search"); - expect(connectionDialogSource).toContain("data-connection-db-search"); - }); - - it("keeps the search shortcut inside the modal connection dialog", () => { - expect(appSource).toMatch(/if \(showConnectionDialog\.value\) \{[\s\S]*?data-connection-db-search[\s\S]*?return true;\s*\}/); - }); -}); diff --git a/apps/desktop/src/components/ai/rich/__tests__/AiChartRendererLayout.spec.ts b/apps/desktop/src/components/ai/rich/__tests__/AiChartRendererLayout.spec.ts deleted file mode 100644 index b4146cae5..000000000 --- a/apps/desktop/src/components/ai/rich/__tests__/AiChartRendererLayout.spec.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { readFileSync } from "node:fs"; -import { describe, expect, it } from "vitest"; - -const rendererSource = readFileSync(new URL("../AiChartRenderer.vue", import.meta.url), "utf8"); - -describe("AiChartRenderer layout", () => { - it("establishes the chart height on the parent that vue-echarts fills", () => { - expect(rendererSource).toContain("min-h-60 h-[clamp(15rem,35vw,20rem)]"); - expect(rendererSource).toContain('class="min-h-0 flex-1"'); - expect(rendererSource).toContain('class="h-full w-full p-2"'); - expect(rendererSource).not.toContain('class="h-80 w-full p-2"'); - }); - - it("uses the native save dialog and binary writer for PNGs in Tauri", () => { - expect(rendererSource).toContain('await import("@tauri-apps/plugin-dialog")'); - expect(rendererSource).toContain('await import("@tauri-apps/plugin-fs")'); - expect(rendererSource).toContain("await writeFile(path, new Uint8Array(await blob.arrayBuffer()))"); - }); - - it("surfaces download failures through a localized toast instead of a hardcoded English tooltip", () => { - expect(rendererSource).toContain("t('ai.chartDownloadPng')"); - expect(rendererSource).toContain('toast(t("ai.chartDownloadFailed"))'); - const savePath = rendererSource.slice(rendererSource.indexOf("await writeFile(path, new Uint8Array(await blob.arrayBuffer()))")); - expect(savePath).toContain('} catch {\n toast(t("ai.chartDownloadFailed"));\n }'); - expect(rendererSource).not.toContain('title="Download PNG"'); - expect(rendererSource).not.toContain('aria-label="Download PNG"'); - expect(rendererSource).toContain('t("ai.chartData")'); - }); -}); diff --git a/apps/desktop/src/components/consul/__tests__/ConsulWatchViews.spec.ts b/apps/desktop/src/components/consul/__tests__/ConsulWatchViews.spec.ts index 5b6312543..4436b7643 100644 --- a/apps/desktop/src/components/consul/__tests__/ConsulWatchViews.spec.ts +++ b/apps/desktop/src/components/consul/__tests__/ConsulWatchViews.spec.ts @@ -3,77 +3,14 @@ import { describe, expect, it } from "vitest"; const services = readFileSync(new URL("../ConsulServices.vue", import.meta.url), "utf8"); const health = readFileSync(new URL("../ConsulHealth.vue", import.meta.url), "utf8"); -const overview = readFileSync(new URL("../ConsulOverview.vue", import.meta.url), "utf8"); -const sessions = readFileSync(new URL("../ConsulSessions.vue", import.meta.url), "utf8"); const scope = readFileSync(new URL("../ConsulScope.vue", import.meta.url), "utf8"); const keyBrowser = readFileSync(new URL("../ConsulKeyBrowser.vue", import.meta.url), "utf8"); const mesh = readFileSync(new URL("../ConsulMesh.vue", import.meta.url), "utf8"); const tools = readFileSync(new URL("../ConsulTools.vue", import.meta.url), "utf8"); const operator = readFileSync(new URL("../ConsulOperator.vue", import.meta.url), "utf8"); -const workspace = readFileSync(new URL("../ConsulWorkspace.vue", import.meta.url), "utf8"); const kvBrowser = readFileSync(new URL("../../kv/KvKeyBrowser.vue", import.meta.url), "utf8"); describe("Consul Catalog and Health watch views", () => { - it("watches both service and node Catalog resources and cancels them on teardown", () => { - for (const target of ["catalogServices", "catalogServiceNodes", "catalogNodes", "catalogNodeServices"]) { - expect(services).toContain(`kind: "${target}"`); - } - expect(services).toMatch(/onBeforeUnmount\(\(\) => \{\s*void stopWatches\(\);\s*\}\);/); - expect(services).toContain("switchBrowseMode"); - }); - - it("supports state, node, and service Health resources with a scoped watch", () => { - for (const target of ["healthState", "healthNode", "healthServiceInstances"]) { - expect(health).toContain(`kind: "${target}"`); - } - expect(health).toContain('browseMode = ref<"state" | "node" | "service">'); - expect(health).toMatch(/onBeforeUnmount\(\(\) => \{\s*void stopWatch\(\);\s*\}\);/); - expect(health).toContain("selectedCheck"); - expect(health).toContain("selectedCheck.Definition"); - }); - - it("filters and paginates Health results without querying on every target keystroke", () => { - for (const state of ["browseNameDraft", "keywordFilter", "statusFilter", "typeFilter"]) { - expect(health).toContain(`const ${state} = ref(`); - } - for (const collection of ["filteredChecks", "filteredLocalChecks", "pagedChecks", "pagedLocalChecks", "pagedServiceInstances"]) { - expect(health).toContain(`const ${collection} = computed(`); - } - expect(health).toContain('v-model="browseNameDraft"'); - expect(health).toContain('@keydown.enter="applyBrowseTarget"'); - expect(health).toContain("t('consul.ui.searchHealthChecks')"); - expect(health).toContain(" { - expect(services).toContain("item.NodeMeta"); - expect(services).toContain("item.ServiceMeta"); - expect(services).toContain("nodeServices?.Node.NodeMeta"); - for (const state of ["loading", "ready", "forbidden", "unsupported", "error"]) { - expect(overview).toContain(`"${state}"`); - } - expect(overview).toContain("probeStates[key]"); - }); - - it("binds Session renew to connection and scope lifecycle and exposes lock indexes", () => { - expect(sessions).toContain("connectionActive"); - expect(sessions).toContain("consulStore.generation"); - expect(sessions).toContain("currentScopeKey()"); - expect(sessions).toContain("clearTimeout(renewTimer)"); - expect(sessions).toContain("item.lockIndex"); - expect(sessions).toContain("session.NodeChecks"); - expect(sessions).toContain("session.ServiceChecks"); - expect(sessions).toContain("!isTtlSession(session)"); - expect(sessions).toContain("ConsulListPagination"); - expect(sessions).toContain("filteredSessions"); - expect(sessions).toContain("await inspectLockKey()"); - expect(sessions).toContain("expectedModifyIndex: lockInspection.value.modifyIndex"); - expect(sessions).toContain("heldKeys[session.ID].complete"); - expect(sessions).toContain("value.items.map(normalizeConsulSession)"); - expect(sessions).toContain("withUiTimeout(api.consulSessions(props.connectionId))"); - }); - it("renders the complete Enterprise delete impact inventory", () => { for (const resource of ["kvKeys", "healthChecks", "sessions", "intentions", "peerings", "aclTokens", "aclPolicies", "aclRoles", "aclAuthMethods", "aclBindingRules"]) { expect(scope).toContain(`value.${resource}`); @@ -82,65 +19,6 @@ describe("Consul Catalog and Health watch views", () => { expect(scope).toContain("impact.unavailableResources"); }); - it("offers both Agent service maintenance transitions", () => { - expect(services).toContain("maintenance(service.ID, true)"); - expect(services).toContain("maintenance(service.ID, false)"); - expect(services).toContain('t("consul.ui.enableMaintenance")'); - expect(services).toContain('t("consul.ui.disableMaintenance")'); - expect(services).toContain('v-if="canAgentWrite && !isServiceInMaintenance(service.ID)"'); - expect(services).toContain('v-else-if="canAgentWrite"'); - expect(services).toContain("t(`consul.ui.agentWriteBlocked.${reason}`)"); - expect(services).toContain("{{ agentWriteDisabledMessage }}"); - }); - - it("keeps Catalog browsing searchable and separates readable Catalog data from Agent actions", () => { - expect(services).toContain('const browseFilter = ref("");'); - expect(services).toContain("const filteredServiceNames"); - expect(services).toContain("const filteredNodeNames"); - expect(services).toContain("const localServiceItems"); - expect(services).toContain("const filteredLocalServiceItems"); - expect(services).toContain(" { - expect(tools).toContain('const activeTab = ref("queries")'); - for (const loader of ["loadQueries", "loadEvents", "loadCoordinates"]) { - expect(tools).toContain(`async function ${loader}()`); - } - for (const errorState of ["queryError", "eventError", "coordinateError"]) { - expect(tools).toContain(`const ${errorState} = ref("")`); - } - expect(tools).not.toContain("Promise.allSettled"); - expect(tools).toContain('v-model="eventNodeFilter"'); - expect(tools).toContain('v-model="eventServiceFilter"'); - expect(tools).toContain('v-model="eventTagFilter"'); - expect(tools).toContain("queryResult.Nodes"); - expect(tools).toContain("item.Coord.Adjustment"); - expect(tools).toContain("item.Coord.Height"); - }); - - it("paginates every potentially large service collection before rendering", () => { - for (const collection of ["pagedServiceNames", "pagedNodeNames", "pagedCatalogInstances", "pagedNodeServices", "pagedLocalServices"]) { - expect(services).toContain(`const ${collection} = computed(() => paginateConsulItems(`); - expect(services).toContain(`v-for="${collection === "pagedCatalogInstances" ? "item" : collection.includes("Names") ? "name" : "service"} in ${collection}"`); - } - expect(services).toContain(" { for (const source of [services, health]) { expect(source).toContain("config.agentTarget || config.agent_target"); @@ -151,82 +29,12 @@ describe("Consul Catalog and Health watch views", () => { expect(health).toContain("consulAgentWriteTargetSafe(store.getConfig(props.connectionId), identity.value?.node)"); }); - it("supports exact-Key and prefix KV watches and exposes batch atomicity", () => { - expect(keyBrowser).toContain('watchMode = ref<"key" | "prefix">("prefix")'); - expect(keyBrowser).toContain('prefix: watchMode.value === "prefix"'); - expect(keyBrowser).toContain(':on-watch-key="watchSelectedKey"'); - expect(keyBrowser).toContain("transferReport.atomic"); - expect(keyBrowser).toContain("deleteReport.atomic"); - expect(keyBrowser).toContain("row.opIndex"); - }); - - it("keeps the Key prefix search first and groups enhanced Consul KV actions after a divider", () => { - expect(keyBrowser).toContain("