aboutsummaryrefslogtreecommitdiff
path: root/frontend/test/chat_viewmodel_test.dart
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/test/chat_viewmodel_test.dart')
-rw-r--r--frontend/test/chat_viewmodel_test.dart47
1 files changed, 47 insertions, 0 deletions
diff --git a/frontend/test/chat_viewmodel_test.dart b/frontend/test/chat_viewmodel_test.dart
new file mode 100644
index 000000000..6278d4c0a
--- /dev/null
+++ b/frontend/test/chat_viewmodel_test.dart
@@ -0,0 +1,47 @@
+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
+ });
+ });
+}