TF-3236 Add integration test to search snippet

This commit is contained in:
DatDang
2024-11-11 10:27:47 +07:00
committed by Dat H. Pham
parent ed2c0b1f6d
commit 1ece796185
8 changed files with 356 additions and 0 deletions
@@ -0,0 +1,57 @@
import 'package:core/core.dart';
import 'package:flutter_test/flutter_test.dart';
import '../base/base_scenario.dart';
import '../models/provisioning_email.dart';
import '../robots/search_robot.dart';
import '../robots/thread_robot.dart';
import '../utils/scenario_utils_mixin.dart';
import 'login_with_basic_auth_scenario.dart';
class SearchResultHighlightsScenario extends BaseScenario with ScenarioUtilsMixin {
SearchResultHighlightsScenario(
super.$, {
required this.loginWithBasicAuthScenario,
required this.keyword,
required this.longEmailContents,
});
final LoginWithBasicAuthScenario loginWithBasicAuthScenario;
final String keyword;
final List<String> longEmailContents;
@override
Future<void> execute() async {
// Robots
final threadRobot = ThreadRobot($);
final searchRobot = SearchRobot($);
// Login
await loginWithBasicAuthScenario.execute();
// Prepare attachment file
final file = await preparingTxtFile(keyword);
// Provisioning some emails
await provisionEmail(longEmailContents
.map(
(emailContent) => ProvisioningEmail(
toEmail: loginWithBasicAuthScenario.email,
subject: keyword,
content: emailContent,
attachmentPaths: emailContent == longEmailContents.first
? [file.path]
: [],
),
)
.toList());
await $.pumpAndSettle();
// Search
await threadRobot.tapOnSearchField();
await searchRobot.enterKeyword(keyword);
await searchRobot.tapOnShowAllResultsText();
await $.pump(const Duration(seconds: 5));
expect($(RichTextBuilder).$(keyword.split(' ').first).hitTestable().evaluate().length, 12);
}
}
@@ -0,0 +1,56 @@
import 'package:core/core.dart';
import 'package:flutter_test/flutter_test.dart';
import '../base/base_scenario.dart';
import '../models/provisioning_email.dart';
import '../robots/search_robot.dart';
import '../robots/thread_robot.dart';
import '../utils/scenario_utils_mixin.dart';
import 'login_with_basic_auth_scenario.dart';
class SearchSuggestionHighlightsScenario extends BaseScenario with ScenarioUtilsMixin {
SearchSuggestionHighlightsScenario(
super.$, {
required this.loginWithBasicAuthScenario,
required this.keyword,
required this.longEmailContents,
});
final LoginWithBasicAuthScenario loginWithBasicAuthScenario;
final String keyword;
final List<String> longEmailContents;
@override
Future<void> execute() async {
// Robots
final threadRobot = ThreadRobot($);
final searchRobot = SearchRobot($);
// Login
await loginWithBasicAuthScenario.execute();
// Prepare attachment file
final file = await preparingTxtFile(keyword);
// Provisioning some emails
await provisionEmail(longEmailContents
.map(
(emailContent) => ProvisioningEmail(
toEmail: loginWithBasicAuthScenario.email,
subject: keyword,
content: emailContent,
attachmentPaths: emailContent == longEmailContents.first
? [file.path]
: [],
),
)
.toList());
await $.pumpAndSettle();
// Search
await threadRobot.tapOnSearchField();
await searchRobot.enterKeyword(keyword);
await $.pump(const Duration(seconds: 5));
expect($(RichTextBuilder).$(keyword.split(' ').first).hitTestable().evaluate().length, 10);
}
}