50 lines
1.5 KiB
Dart
50 lines
1.5 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:relationship_saver/core/llm/llm_config.dart';
|
|
|
|
void main() {
|
|
test('cloud provider defaults need an API key', () {
|
|
final LlmConfigState missingKey = LlmConfigState(
|
|
provider: LlmProvider.openai,
|
|
);
|
|
final LlmConfigState configured = LlmConfigState(
|
|
apiKeyConfigured: true,
|
|
provider: LlmProvider.openai,
|
|
);
|
|
|
|
expect(missingKey.isConfigured, isFalse);
|
|
expect(configured.isConfigured, isTrue);
|
|
expect(configured.baseUrl, 'https://api.openai.com/v1');
|
|
expect(configured.model, 'gpt-4o-mini');
|
|
});
|
|
|
|
test('local providers can be configured without an API key', () {
|
|
final LlmConfigState ollama = LlmConfigState(
|
|
provider: LlmProvider.ollama,
|
|
baseUrl: 'http://192.168.1.12:11434',
|
|
model: 'llama3.2:latest',
|
|
);
|
|
final LlmConfigState compatible = LlmConfigState(
|
|
provider: LlmProvider.openaiCompatible,
|
|
baseUrl: 'http://localhost:8000/v1',
|
|
model: 'local-model',
|
|
);
|
|
|
|
expect(ollama.isConfigured, isTrue);
|
|
expect(compatible.isConfigured, isTrue);
|
|
});
|
|
|
|
test('local providers still require a model and endpoint', () {
|
|
final LlmConfigState missingModel = LlmConfigState(
|
|
provider: LlmProvider.ollama,
|
|
baseUrl: 'http://localhost:11434',
|
|
);
|
|
final LlmConfigState missingEndpoint = LlmConfigState(
|
|
provider: LlmProvider.openaiCompatible,
|
|
model: 'local-model',
|
|
);
|
|
|
|
expect(missingModel.isConfigured, isFalse);
|
|
expect(missingEndpoint.isConfigured, isFalse);
|
|
});
|
|
}
|