mirror of
https://github.com/aljazceru/Auto-GPT.git
synced 2025-12-17 22:14:28 +01:00
Add frontend subdirectory to project
This commit is contained in:
76
frontend/test/task_viewmodel_test.dart
Normal file
76
frontend/test/task_viewmodel_test.dart
Normal file
@@ -0,0 +1,76 @@
|
||||
import 'package:auto_gpt_flutter_client/viewmodels/task_viewmodel.dart';
|
||||
import 'package:auto_gpt_flutter_client/viewmodels/mock_data.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('TaskViewModel', () {
|
||||
late TaskViewModel viewModel;
|
||||
|
||||
setUp(() {
|
||||
viewModel = TaskViewModel();
|
||||
});
|
||||
|
||||
test('Fetches tasks successfully', () {
|
||||
viewModel.fetchTasks();
|
||||
expect(viewModel.tasks, isNotEmpty);
|
||||
});
|
||||
|
||||
test('Selects a task successfully', () {
|
||||
viewModel.fetchTasks();
|
||||
viewModel.selectTask(1);
|
||||
expect(viewModel.selectedTask, isNotNull);
|
||||
});
|
||||
|
||||
test(
|
||||
'Notifiers are properly telling UI to update after fetching a task or selecting a task',
|
||||
() {
|
||||
bool hasNotified = false;
|
||||
viewModel.addListener(() {
|
||||
hasNotified = true;
|
||||
});
|
||||
|
||||
viewModel.fetchTasks();
|
||||
expect(hasNotified, true);
|
||||
|
||||
hasNotified = false; // Reset for next test
|
||||
viewModel.selectTask(1);
|
||||
expect(hasNotified, true);
|
||||
});
|
||||
|
||||
test('No tasks are fetched', () {
|
||||
// Clear mock data for this test
|
||||
mockTasks.clear();
|
||||
|
||||
viewModel.fetchTasks();
|
||||
expect(viewModel.tasks, isEmpty);
|
||||
});
|
||||
|
||||
test('No task is selected', () {
|
||||
expect(viewModel.selectedTask, isNull);
|
||||
});
|
||||
|
||||
test('Creates a task successfully', () {
|
||||
final initialCount = viewModel.tasks.length;
|
||||
viewModel.createTask('New Task');
|
||||
expect(viewModel.tasks.length, initialCount + 1);
|
||||
});
|
||||
|
||||
test('Deletes a task successfully', () {
|
||||
viewModel.fetchTasks();
|
||||
final initialCount = viewModel.tasks.length;
|
||||
viewModel.deleteTask(1);
|
||||
expect(viewModel.tasks.length, initialCount - 1);
|
||||
});
|
||||
|
||||
test('Deletes a task with invalid id', () {
|
||||
// TODO: Update this test to expect an error once we have TaskService implemented
|
||||
final initialCount = viewModel.tasks.length;
|
||||
viewModel.deleteTask(9999); // Assuming no task with this id exists
|
||||
expect(viewModel.tasks.length, initialCount); // Count remains same
|
||||
});
|
||||
|
||||
test('Select a task that doesn\'t exist', () {
|
||||
expect(() => viewModel.selectTask(9999), throwsA(isA<ArgumentError>()));
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user