43 lines
1.5 KiB
Dart
Raw Normal View History

2025-03-31 15:33:54 +08:00
import 'package:appflowy/ai/ai.dart';
2025-04-01 13:32:22 +08:00
import 'package:appflowy/plugins/document/presentation/editor_plugins/ai/ai_writer_toolbar_item.dart';
import 'package:appflowy/plugins/document/presentation/editor_plugins/ai/operations/ai_writer_entities.dart';
2025-04-24 23:53:43 +08:00
import 'package:flutter/material.dart';
2025-03-31 15:33:54 +08:00
import 'package:flutter_test/flutter_test.dart';
import 'package:extended_text_field/extended_text_field.dart';
2025-04-01 13:32:22 +08:00
import 'util.dart';
2025-03-31 15:33:54 +08:00
extension AppFlowyAITest on WidgetTester {
2025-04-01 13:32:22 +08:00
Future<void> selectAIWriter(AiWriterCommand command) async {
await tapButton(find.byType(AiWriterToolbarActionList));
await tapButton(find.text(command.i18n));
await pumpAndSettle();
}
Future<void> selectModel(String modelName) async {
await tapButton(find.byType(SelectModelMenu));
await tapButton(find.text(modelName));
await pumpAndSettle();
}
2025-03-31 15:33:54 +08:00
Future<void> enterTextInPromptTextField(String text) async {
// Wait for the text field to be visible
await pumpAndSettle();
// Find the ExtendedTextField widget
final textField = find.descendant(
of: find.byType(PromptInputTextField),
2025-04-24 23:53:43 +08:00
matching: find.byType(TextField),
2025-03-31 15:33:54 +08:00
);
expect(textField, findsOneWidget, reason: 'ExtendedTextField not found');
2025-04-24 23:53:43 +08:00
final widget = element(textField).widget as TextField;
2025-03-31 15:33:54 +08:00
expect(widget.enabled, isTrue, reason: 'TextField is not enabled');
2025-04-01 13:32:22 +08:00
await tap(textField);
2025-03-31 15:33:54 +08:00
testTextInput.enterText(text);
await pumpAndSettle(const Duration(milliseconds: 300));
}
}