TF-3493 Refactor integration test code for performance and maintainability

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-02-21 01:51:19 +07:00
committed by Dat H. Pham
parent 23f5121f03
commit abdcb614ce
25 changed files with 157 additions and 401 deletions
@@ -1,44 +1,9 @@
import '../../base/test_base.dart';
import '../../models/provisioning_email.dart';
import '../../scenarios/login_with_basic_auth_scenario.dart';
import '../../scenarios/search_email_by_date_time_and_sort_order_relevance_scenario.dart';
void main() {
TestBase().runPatrolTest(
description: 'Should see list email displayed by date time `Last 7 days` and sort order `Relevance` when search email successfully',
test: ($) async {
const username = String.fromEnvironment('USERNAME');
const password = String.fromEnvironment('PASSWORD');
const hostUrl = String.fromEnvironment('BASIC_AUTH_URL');
const email = String.fromEnvironment('BASIC_AUTH_EMAIL');
final loginWithBasicAuthScenario = LoginWithBasicAuthScenario(
$,
username: username,
password: password,
hostUrl: hostUrl,
email: email,
);
const queryString = 'relevance';
const listUsername = ['Alice', 'Brian', 'Charlotte', 'David', 'Emma'];
final listProvisioningEmail = listUsername
.map((username) => ProvisioningEmail(
toEmail: '${username.toLowerCase()}@example.com',
subject: queryString,
content: '$queryString to user $username',
))
.toList();
final searchEmailByDatetimeAndSortOrderRelevanceScenario = SearchEmailByDatetimeAndSortOrderRelevanceScenario(
$,
loginWithBasicAuthScenario: loginWithBasicAuthScenario,
queryString: queryString,
listProvisioningEmail: listProvisioningEmail,
);
await searchEmailByDatetimeAndSortOrderRelevanceScenario.execute();
},
scenarioBuilder: ($) => SearchEmailByDatetimeAndSortOrderRelevanceScenario($),
);
}
@@ -1,35 +1,9 @@
import '../../base/test_base.dart';
import '../../scenarios/login_with_basic_auth_scenario.dart';
import '../../scenarios/search_email_with_sort_order_scenario.dart';
void main() {
TestBase().runPatrolTest(
description: 'Should see list email displayed by sort order selected when search email successfully',
test: ($) async {
const username = String.fromEnvironment('USERNAME');
const password = String.fromEnvironment('PASSWORD');
const hostUrl = String.fromEnvironment('BASIC_AUTH_URL');
const email = String.fromEnvironment('BASIC_AUTH_EMAIL');
final loginWithBasicAuthScenario = LoginWithBasicAuthScenario(
$,
username: username,
password: password,
hostUrl: hostUrl,
email: email,
);
const queryString = 'hello';
const listUsername = ['Alice', 'Brian', 'Charlotte', 'David', 'Emma'];
final searchEmailWithSortOrderScenario = SearchEmailWithSortOrderScenario(
$,
loginWithBasicAuthScenario: loginWithBasicAuthScenario,
queryString: queryString,
listUsername: listUsername
);
await searchEmailWithSortOrderScenario.execute();
},
scenarioBuilder: ($) => SearchEmailWithSortOrderScenario($),
);
}
@@ -1,36 +1,9 @@
import '../../base/test_base.dart';
import '../../scenarios/login_with_basic_auth_scenario.dart';
import '../../scenarios/search_result_highlights_scenario.dart';
void main() {
TestBase().runPatrolTest(
description: 'Should see highlighted keyword in search result',
test: ($) async {
const keyword = 'Search snippet results';
const longContentWithSearchKeywordAtTheStart = "$keyword Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s";
const longContentWithSearchKeywordAtTheMiddle = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. $keyword Lorem Ipsum has been the industry's standard dummy text ever since the 1500s";
const longContentWithSearchKeywordAtTheEnd = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s $keyword";
final loginWithBasicAuthScenario = LoginWithBasicAuthScenario($,
username: const String.fromEnvironment('USERNAME'),
hostUrl: const String.fromEnvironment('BASIC_AUTH_URL'),
email: const String.fromEnvironment('BASIC_AUTH_EMAIL'),
password: const String.fromEnvironment('PASSWORD'),
);
final searchResultHighlightsScenario = SearchResultHighlightsScenario(
$,
loginWithBasicAuthScenario: loginWithBasicAuthScenario,
keyword: keyword,
longEmailContents: [
longContentWithSearchKeywordAtTheStart,
longContentWithSearchKeywordAtTheMiddle,
longContentWithSearchKeywordAtTheEnd
],
);
await searchResultHighlightsScenario.execute();
}
scenarioBuilder: ($) => SearchResultHighlightsScenario($),
);
}
@@ -1,36 +1,9 @@
import '../../base/test_base.dart';
import '../../scenarios/login_with_basic_auth_scenario.dart';
import '../../scenarios/search_suggestion_highlights_scenario.dart';
void main() {
TestBase().runPatrolTest(
description: 'Should see highlighted keyword in search suggestion',
test: ($) async {
const keyword = 'Search snippet suggestions';
const longContentWithSearchKeywordAtTheStart = "$keyword Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s";
const longContentWithSearchKeywordAtTheMiddle = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. $keyword Lorem Ipsum has been the industry's standard dummy text ever since the 1500s";
const longContentWithSearchKeywordAtTheEnd = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s $keyword";
final loginWithBasicAuthScenario = LoginWithBasicAuthScenario($,
username: const String.fromEnvironment('USERNAME'),
hostUrl: const String.fromEnvironment('BASIC_AUTH_URL'),
email: const String.fromEnvironment('BASIC_AUTH_EMAIL'),
password: const String.fromEnvironment('PASSWORD'),
);
final searchResultHighlightsScenario = SearchSuggestionHighlightsScenario(
$,
loginWithBasicAuthScenario: loginWithBasicAuthScenario,
keyword: keyword,
longEmailContents: [
longContentWithSearchKeywordAtTheStart,
longContentWithSearchKeywordAtTheMiddle,
longContentWithSearchKeywordAtTheEnd
],
);
await searchResultHighlightsScenario.execute();
}
scenarioBuilder: ($) => SearchSuggestionHighlightsScenario($),
);
}