{added ? : }} />}
}
diff --git a/desktop/src/pages/Connectors.test.tsx b/desktop/src/pages/Connectors.test.tsx
index 2c7ae30c..2ea30701 100644
--- a/desktop/src/pages/Connectors.test.tsx
+++ b/desktop/src/pages/Connectors.test.tsx
@@ -166,15 +166,25 @@ it('still requires every setup field when a stored credential is being replaced'
expect(perform).not.toHaveBeenCalled()
expect(screen.getByLabelText('Workspace')).toHaveAttribute('aria-invalid', 'true')
})
-it('opens configuration details from add without automatically sending credentials', () => {
+it('opens configuration details from the row action without automatically sending credentials', () => {
useConnectorStore.setState({ items: [{ ...remote, installed: false, status: 'not-installed' }] })
render()
- fireEvent.click(screen.getByRole('button', { name: 'connectors.action.prepare' }))
+ fireEvent.click(screen.getByRole('button', { name: 'connectors.details' }))
expect(screen.getByRole('dialog')).toBeInTheDocument()
expect(perform).not.toHaveBeenCalled()
- fireEvent.click(screen.getAllByRole('button', { name: 'connectors.action.prepare' }).at(-1)!)
+ fireEvent.click(screen.getByRole('button', { name: 'connectors.action.prepare' }))
expect(perform).toHaveBeenCalledWith('remote-search', 'prepare', {})
})
+it('opens details from the row action without installing a connector that needs no configuration', () => {
+ const plain: ConnectorDto = { ...remote, id: 'plain-service', displayName: 'Plain Service', setupFields: undefined }
+ useConnectorStore.setState({ items: [{ ...plain, installed: false, status: 'not-installed' }] })
+ render()
+ fireEvent.click(screen.getByRole('button', { name: 'connectors.details' }))
+ expect(screen.getByRole('dialog')).toBeInTheDocument()
+ expect(perform).not.toHaveBeenCalled()
+ fireEvent.click(screen.getByRole('button', { name: 'connectors.action.prepare' }))
+ expect(perform).toHaveBeenCalledWith('plain-service', 'prepare', {})
+})
it('renders a stable skeleton instead of empty catalog while loading', () => {
useConnectorStore.setState({ items: [], loading: true })
render()
diff --git a/desktop/src/pages/Connectors.tsx b/desktop/src/pages/Connectors.tsx
index 7df0d2df..926ae054 100644
--- a/desktop/src/pages/Connectors.tsx
+++ b/desktop/src/pages/Connectors.tsx
@@ -194,7 +194,7 @@ export function Connectors({ mode = 'plugins', embedded = false, externalQuery,
{(error || localError) && (!detail || confirmation) && { setLocalError(null); void refresh() }} retryLabel={t('connectors.retry')} />
}
{loading ? {Array.from({ length: 8 }, (_, index) =>
)}
- : visible.length ? {visible.map(item => requestAction(item, 'remove')}>{t('market.uninstall.action')} : undefined} onDetails={() => showDetail(item)} onAction={() => management || item.installed || item.operation ? showDetail(item) : requestAction(item, primaryAction(item) || 'prepare')} />)}
+ : visible.length ? {visible.map(item => requestAction(item, 'remove')}>{t('market.uninstall.action')} : undefined} onDetails={() => showDetail(item)} onAction={() => showDetail(item)} />)}
: { setFilter('all'); setCategory('all'); setRegion('all'); setQuery('') } }} />}