Files
LTX-DeskWEB/frontend/lib/enhance-gemini-key.test.ts
T

73 lines
2.1 KiB
TypeScript

import assert from 'node:assert/strict'
import { describe, it } from 'node:test'
import {
GEMINI_KEY_REQUIRED_SETTINGS_DETAIL,
isEnhanceBlockedByMissingGeminiKey,
} from './enhance-gemini-key.ts'
const blocked = {
enhanceAvailableForMode: true,
enhanceProvider: 'api' as const,
hasGeminiApiKey: false,
hasEnhanceInput: true,
isGenerationInProgressForEnhance: false,
isOtherGenerationRunning: false,
}
describe('isEnhanceBlockedByMissingGeminiKey', () => {
it('is true when Enhance (API) is selected and no Gemini key is configured', () => {
assert.equal(isEnhanceBlockedByMissingGeminiKey(blocked), true)
})
it('is false when enhance is not available for the current mode', () => {
assert.equal(
isEnhanceBlockedByMissingGeminiKey({ ...blocked, enhanceAvailableForMode: false }),
false,
)
})
it('is false when a Gemini key is already configured', () => {
assert.equal(
isEnhanceBlockedByMissingGeminiKey({ ...blocked, hasGeminiApiKey: true }),
false,
)
})
it('is false when Enhance is using the local provider, even without a Gemini key', () => {
assert.equal(
isEnhanceBlockedByMissingGeminiKey({ ...blocked, enhanceProvider: 'local' }),
false,
)
})
it('is false when there is no prompt or image to enhance', () => {
assert.equal(
isEnhanceBlockedByMissingGeminiKey({ ...blocked, hasEnhanceInput: false }),
false,
)
})
it('is false while this project is already generating', () => {
assert.equal(
isEnhanceBlockedByMissingGeminiKey({ ...blocked, isGenerationInProgressForEnhance: true }),
false,
)
})
it('is false while another project is generating', () => {
assert.equal(
isEnhanceBlockedByMissingGeminiKey({ ...blocked, isOtherGenerationRunning: true }),
false,
)
})
})
describe('GEMINI_KEY_REQUIRED_SETTINGS_DETAIL', () => {
it('opens Settings on the API Keys tab for the Gemini key banner', () => {
assert.deepEqual(GEMINI_KEY_REQUIRED_SETTINGS_DETAIL, {
tab: 'apiKeys',
reason: 'geminiKeyRequired',
})
})
})