Files
AutoGPT/classic/frontend/test/chat_viewmodel_test.dart
Swifty ef7cfbb860 refactor: AutoGPT Platform Stealth Launch Repo Re-Org (#8113)
Restructuring the Repo to make it clear the difference between classic autogpt and the autogpt platform:
* Move the "classic" projects `autogpt`, `forge`, `frontend`, and `benchmark` into a `classic` folder
  * Also rename `autogpt` to `original_autogpt` for absolute clarity
* Rename `rnd/` to `autogpt_platform/`
  * `rnd/autogpt_builder` -> `autogpt_platform/frontend`
  * `rnd/autogpt_server` -> `autogpt_platform/backend`
* Adjust any paths accordingly
2024-09-20 16:50:43 +02:00

48 lines
1.9 KiB
Dart

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
});
});
}