feat(release): prepare 1.1.0 candidate

This commit is contained in:
Yun Chan 2026-08-29 18:33:45 +09:00
parent 5a34f66981
commit 5205dcdfa9
736 changed files with 115667 additions and 12203 deletions

View file

@ -26,6 +26,9 @@ vi.mock('../../src/main/services/CloudSyncService', () => ({
getCloudSyncService: () => ({
isEnabled: () => true,
isAuthenticated: () => cloudPorts.authenticated,
getAccessToken: async () => cloudPorts.authenticated ? 'fx.authenticated.jwt' : null,
getSupabaseUrl: () => 'https://project.supabase.co',
getAnonKey: () => 'fx-anon-key',
invokeFunction: (name: string, body: Record<string, unknown>) => cloudPorts.invoke(name, body),
signInAnonymously: async () => {
throw new Error('fx.anon.not-supported')
@ -54,7 +57,7 @@ describe('유스케이스: STT/LLM 모델 I/O 실패·빈값·기형 응답', ()
it('STT 프록시 에러는 STTTranscriptionFailed 다', async () => {
cloudPorts.authenticated = true
cloudPorts.invoke = async () => ({ data: null, error: { message: 'fx.stt.proxy-down' } })
vi.stubGlobal('fetch', vi.fn(async () => ({ ok: false, status: 503 })))
await expect(getCloudSTTService().transcribe(Buffer.from('pcm'))).rejects.toMatchObject({
code: ErrorCode.STTTranscriptionFailed,
})
@ -62,10 +65,17 @@ describe('유스케이스: STT/LLM 모델 I/O 실패·빈값·기형 응답', ()
it('STT 빈 텍스트는 성공 객체가 아니라 에러다', async () => {
cloudPorts.authenticated = true
cloudPorts.invoke = async () => ({
data: { text: FX.STT_EMPTY, segments: [], language: 'ko' },
error: null,
})
vi.stubGlobal('fetch', vi.fn(async () => ({
ok: true,
status: 200,
json: async () => ({
transcript: FX.STT_EMPTY,
confidence: 0.9,
language_code: 'ko',
duration_seconds: 1,
provider: 'fixture',
}),
})))
await expect(getCloudSTTService().transcribe(Buffer.from('pcm'))).rejects.toMatchObject({
code: ErrorCode.STTNoAudioData,
})
@ -73,7 +83,11 @@ describe('유스케이스: STT/LLM 모델 I/O 실패·빈값·기형 응답', ()
it('STT 기형 페이로드(text 없음)는 파싱 실패다', async () => {
cloudPorts.authenticated = true
cloudPorts.invoke = async () => ({ data: FX.STT_MALFORMED_SHAPE, error: null })
vi.stubGlobal('fetch', vi.fn(async () => ({
ok: true,
status: 200,
json: async () => FX.STT_MALFORMED_SHAPE,
})))
await expect(getCloudSTTService().transcribe(Buffer.from('pcm'))).rejects.toMatchObject({
code: ErrorCode.STTTranscriptionFailed,
})
@ -81,10 +95,17 @@ describe('유스케이스: STT/LLM 모델 I/O 실패·빈값·기형 응답', ()
it('STT 정상 픽스처는 text 가 픽스처 토큰이다', async () => {
cloudPorts.authenticated = true
cloudPorts.invoke = async () => ({
data: { text: FX.STT_OK, segments: [], language: 'ko', duration: 1, processingTime: 1 },
error: null,
})
vi.stubGlobal('fetch', vi.fn(async () => ({
ok: true,
status: 200,
json: async () => ({
transcript: FX.STT_OK,
confidence: 0.99,
language_code: 'ko',
duration_seconds: 1,
provider: 'fixture',
}),
})))
const result = await getCloudSTTService().transcribe(Buffer.from('pcm'))
expect(result.text).toBe(FX.STT_OK)
expect(result.text).not.toBe(USER_TEXT.KO)