mirror of
https://github.com/mudler/LocalAI.git
synced 2026-09-12 22:33:54 -04:00
fix(ui): keep agent import action visible (#11488)
* fix(ui): keep agent import action visible The header hid its full import label after the agent list became non-empty. Hide only the nested file input so users can import more agents. Assisted-by: Codex:gpt-5 * test(ui): match the agent import label The Agents page renders the action as Import. The test searched for Import Agent, so it failed before checking visibility. Mock the observables request to remove backend timing from the fixture. Assisted-by: Codex:gpt-5 --------- Co-authored-by: localai-org-maint-bot <306269227+localai-org-maint-bot@users.noreply.github.com>
This commit is contained in:
1 parent
58a37fa2c9
commit
95653f221e
2 files changed
+14
-2
No files matched your search
@@ -13,6 +13,18 @@ test.describe('Agents page', () => {
|
||||
await expect(page.getByRole('button', { name: 'Create Agent' }).first()).toBeVisible()
|
||||
})
|
||||
|
||||
test('keeps Import Agent visible when agents exist', async ({ page }) => {
|
||||
await page.route('**/api/agents', route => route.fulfill({
|
||||
json: { agents: ['existing-agent'], statuses: { 'existing-agent': true } },
|
||||
}))
|
||||
await page.route('**/api/agents/existing-agent/observables', route => route.fulfill({
|
||||
json: { History: [] },
|
||||
}))
|
||||
await page.reload()
|
||||
|
||||
await expect(page.locator('.header-actions label', { hasText: 'Import' })).toBeVisible()
|
||||
})
|
||||
|
||||
test('Create Agent navigates to the agent creation form', async ({ page }) => {
|
||||
const create = page.getByRole('button', { name: 'Create Agent' }).last()
|
||||
await create.scrollIntoViewIfNeeded()
|
||||
|
||||
@@ -194,9 +194,9 @@ export default function Agents() {
|
||||
)}
|
||||
{/* A label styled as a button, wrapping the file input it triggers,
|
||||
so the control looks and behaves like its neighbours. */}
|
||||
<label className="btn btn-secondary agents-import-input">
|
||||
<label className="btn btn-secondary">
|
||||
<i className="fas fa-file-import" /> {t('actions.import')}
|
||||
<input type="file" accept=".json" onChange={handleImport} />
|
||||
<input type="file" accept=".json" className="agents-import-input" onChange={handleImport} />
|
||||
</label>
|
||||
<button className="btn btn-primary" onClick={() => navigate('/app/agents/new')}>
|
||||
<i className="fas fa-plus" /> {t('actions.createAgent')}
|
||||
|
||||
Reference in new issue
Block a user