Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
commit
03634b1ca3
11340 files changed
+3442369
No files matched your search
@@ -0,0 +1,49 @@
|
||||
import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react'
|
||||
import { afterEach, describe, expect, it, vi } from 'vitest'
|
||||
|
||||
import { saveCustomEndpoint, validateCustomEndpoint } from '@/hermes'
|
||||
import { I18nProvider } from '@/i18n/context'
|
||||
|
||||
import { AiturkProvider } from './aiturk-provider'
|
||||
|
||||
vi.mock('@/hermes', () => ({ saveCustomEndpoint: vi.fn(), validateCustomEndpoint: vi.fn() }))
|
||||
vi.mock('./flow', () => ({ DocsLink: ({ children, href }: { children: React.ReactNode; href: string }) => <a href={href}>{children}</a> }))
|
||||
|
||||
afterEach(() => { cleanup(); vi.resetAllMocks() })
|
||||
|
||||
function setup() {
|
||||
const onConnected = vi.fn().mockResolvedValue(undefined)
|
||||
render(<I18nProvider configClient={null}><AiturkProvider onConnected={onConnected} /></I18nProvider>)
|
||||
const input = screen.getByLabelText('TurkServis API anahtarı') as HTMLInputElement
|
||||
fireEvent.change(input, { target: { value: 'test-key-never-real' } })
|
||||
fireEvent.click(screen.getByRole('button', { name: 'Bağlan' }))
|
||||
return { input, onConnected }
|
||||
}
|
||||
|
||||
describe('TurkServis provider setup', () => {
|
||||
it('discovers an authorized model before saving it as the default', async () => {
|
||||
vi.mocked(validateCustomEndpoint).mockResolvedValue({ ok: true, reachable: true, models: ['account/model-a', 'account/model-b'], message: '' })
|
||||
vi.mocked(saveCustomEndpoint).mockResolvedValue({ id: 'turkservis', endpoints: [], current: { base_url: 'https://ai.turkservis.online/v1', model: 'account/model-a', provider: 'turkservis' }, ok: true })
|
||||
const { input, onConnected } = setup()
|
||||
expect(input.type).toBe('password')
|
||||
await waitFor(() => expect(onConnected).toHaveBeenCalledOnce())
|
||||
expect(saveCustomEndpoint).toHaveBeenCalledWith(expect.objectContaining({
|
||||
base_url: 'https://ai.turkservis.online/v1', api_key: 'test-key-never-real', model: 'account/model-a',
|
||||
models: ['account/model-a', 'account/model-b'], make_default: true
|
||||
}))
|
||||
expect(input.value).toBe('')
|
||||
})
|
||||
it('does not persist rejected credentials or claim a successful connection', async () => {
|
||||
vi.mocked(validateCustomEndpoint).mockResolvedValue({ ok: false, reachable: true, models: [], message: 'Anahtar geçersiz (401)' })
|
||||
const { onConnected } = setup()
|
||||
await waitFor(() => expect(screen.getByRole('alert').textContent).toContain('401'))
|
||||
expect(saveCustomEndpoint).not.toHaveBeenCalled()
|
||||
expect(onConnected).not.toHaveBeenCalled()
|
||||
})
|
||||
it('does not invent a model when the authenticated catalog is empty', async () => {
|
||||
vi.mocked(validateCustomEndpoint).mockResolvedValue({ ok: true, reachable: true, models: [], message: '' })
|
||||
setup()
|
||||
await waitFor(() => expect(screen.getByRole('alert').textContent).toContain('model bulunamadı'))
|
||||
expect(saveCustomEndpoint).not.toHaveBeenCalled()
|
||||
})
|
||||
})
|
||||
Reference in new issue
Block a user