genai_testing: Expanded Testing Efforts

This commit is contained in:
Manas Hejmadi
2025-08-31 01:56:48 +05:30
parent 143e2c146b
commit 37a21106ae
7 changed files with 293 additions and 3 deletions

View File

@@ -0,0 +1,74 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:genai/models/available_models.dart';
import 'package:genai/interface/interface.dart';
void main() {
group('AvailableModels', () {
test('can parse from JSON and back', () {
const jsonString = '''
{
"version": 1.0,
"model_providers": [
{
"provider_id": "openai",
"provider_name": "OpenAI",
"source_url": "https://api.openai.com",
"models": [
{"id": "gpt-4", "name": "GPT-4"}
]
}
]
}
''';
final models = availableModelsFromJson(jsonString);
expect(models.version, 1.0);
expect(models.modelProviders.length, 1);
expect(models.modelProviders.first.providerName, "OpenAI");
final backToJson = availableModelsToJson(models);
expect(backToJson.contains("GPT-4"), true);
});
test('map getter returns map of providers', () {
final provider = AIModelProvider(
providerId: ModelAPIProvider.openai,
providerName: "OpenAI",
models: [const Model(id: "gpt-4", name: "GPT-4")],
);
final available = AvailableModels(
version: 1.0,
modelProviders: [provider],
);
expect(available.map.containsKey(ModelAPIProvider.openai), true);
expect(available.map[ModelAPIProvider.openai]?.providerName, "OpenAI");
});
});
group('AIModelProvider', () {
test(
'toAiRequestModel returns default AIRequestModel with model override',
() {
const provider = AIModelProvider(
providerId: ModelAPIProvider.openai,
providerName: "OpenAI",
);
const model = const Model(id: "gpt-4", name: "GPT-4");
final req = provider.toAiRequestModel(model: model);
expect(req?.model, "gpt-4");
},
);
});
group('Model', () {
test('fromJson works', () {
final model = Model.fromJson({"id": "mistral", "name": "Mistral"});
expect(model.id, "mistral");
expect(model.name, "Mistral");
});
});
}