autogpt / frontend /test /chat_viewmodel_test.dart
kakumusic's picture
Upload folder using huggingface_hub
b225a21 verified
raw
history blame
1.94 kB
import 'package:auto_gpt_flutter_client/models/message_type.dart';
import 'package:auto_gpt_flutter_client/viewmodels/chat_viewmodel.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
// Initialize the ChatViewModel
// TODO: Dependency injection in view models for testing purposes when we implement services
final viewModel = ChatViewModel();
group('ChatViewModel', () {
test('fetch chats for a specific task', () {
viewModel
.fetchChatsForTask(1); // Assuming task with ID 1 exists in mock data
expect(viewModel.chats.isNotEmpty, true);
expect(viewModel.chats.every((chat) => chat.taskId == 1), true);
});
test('send chat message for a specific task', () {
final initialChatsLength = viewModel.chats.length;
viewModel.sendChatMessage(1, 'Test message');
expect(viewModel.chats.length,
initialChatsLength + 2); // One user message and one agent reply
expect(viewModel.chats.last.messageType,
MessageType.agent); // Last message should be agent's reply
});
// TODO: Refactor to return errors when we implement service
test('fetch chats for invalid task id', () {
viewModel.fetchChatsForTask(
9999); // Assuming task with ID 9999 does not exist in mock data
expect(
viewModel.chats.where((chat) => chat.taskId == 9999).isEmpty, true);
});
// TODO: Refactor to return errors when we implement service
test('send chat message for invalid task id', () {
final initialChatsLength = viewModel.chats.length;
viewModel.sendChatMessage(9999, 'Invalid test message');
expect(
viewModel.chats.length,
initialChatsLength +
2); // Even for invalid tasks, we're currently adding mock replies
expect(viewModel.chats.last.messageType,
MessageType.agent); // Last message should be agent's reply
});
});
}