Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license

This commit is contained in:
yilsem committed 2026-09-05 13:26:46 +03:00
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()
})
})