Skip to content

Commit 03694d8

Browse files
tddang-linagorahoangdat
authored andcommitted
TF-3614 E2E quota view increase
1 parent e5d996e commit 03694d8

File tree

5 files changed

+67
-1
lines changed

5 files changed

+67
-1
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
class NullQuotaException implements Exception {}

integration_test/robots/mailbox_menu_robot.dart

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@ import 'package:get/get.dart';
66
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/label_mailbox_item_widget.dart';
77
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_item_widget.dart';
88
import 'package:tmail_ui_user/features/mailbox_creator/presentation/mailbox_creator_view.dart';
9+
import 'package:tmail_ui_user/features/quotas/presentation/quotas_controller.dart';
910
import 'package:tmail_ui_user/features/search/mailbox/presentation/search_mailbox_view.dart';
1011
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
1112
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
13+
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
1214

1315
import '../base/core_robot.dart';
1416
import '../exceptions/mailbox/null_inbox_unread_count_exception.dart';
17+
import '../integration_test/exceptions/mailbox/null_quota_exception.dart';
1518

1619
class MailboxMenuRobot extends CoreRobot {
1720
MailboxMenuRobot(super.$);
@@ -109,4 +112,17 @@ class MailboxMenuRobot extends CoreRobot {
109112
Future<void> confirmSignOut() async {
110113
await $(AppLocalizations().yesLogout).tap();
111114
}
115+
116+
int getUsedQuota() {
117+
final usedQuota =
118+
getBinding<QuotasController>()?.octetsQuota.value?.used?.value.toInt();
119+
if (usedQuota == null) throw NullQuotaException();
120+
121+
return usedQuota;
122+
}
123+
124+
Future<void> refreshQuota() async {
125+
getBinding<QuotasController>()?.reloadQuota();
126+
await $.pumpAndSettle(duration: const Duration(seconds: 2));
127+
}
112128
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import 'package:flutter_test/flutter_test.dart';
2+
3+
import '../../base/base_test_scenario.dart';
4+
import '../../models/provisioning_email.dart';
5+
import '../../robots/mailbox_menu_robot.dart';
6+
import '../../robots/thread_robot.dart';
7+
8+
class QuotaCountScenario extends BaseTestScenario {
9+
const QuotaCountScenario(super.$);
10+
11+
@override
12+
Future<void> runTestLogic() async {
13+
const email = String.fromEnvironment('BASIC_AUTH_EMAIL');
14+
15+
final threadRobot = ThreadRobot($);
16+
final mailboxMenuRobot = MailboxMenuRobot($);
17+
18+
await threadRobot.openMailbox();
19+
final beforeUsedQuota = mailboxMenuRobot.getUsedQuota();
20+
21+
final file = await preparingTxtFile('some content');
22+
await provisionEmail([ProvisioningEmail(
23+
toEmail: email,
24+
subject: 'test increase quota',
25+
content: '',
26+
attachmentPaths: [file.path],
27+
)]);
28+
await mailboxMenuRobot.refreshQuota();
29+
final afterUsedQuota = mailboxMenuRobot.getUsedQuota();
30+
31+
_expectQuotaIncreased(beforeUsedQuota, afterUsedQuota);
32+
}
33+
34+
void _expectQuotaIncreased(int before, int after) {
35+
expect(after, greaterThan(before));
36+
}
37+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import '../../base/test_base.dart';
2+
import '../../scenarios/mailbox/quota_count_scenario.dart';
3+
4+
void main() {
5+
TestBase().runPatrolTest(
6+
description: 'Should see quota increase when send email successfully',
7+
scenarioBuilder: ($) => QuotaCountScenario($),
8+
);
9+
}

provisioning/integration_test/provisioning.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,7 @@ done
8989
# For test team mailbox
9090
curl -XPUT http://172.18.0.2:8000/domains/example.com/team-mailboxes/bob-guests
9191
curl -XPUT http://172.18.0.2:8000/domains/example.com/team-mailboxes/bob-guests/members/bob@example.com?role=member
92-
curl -XPUT http://172.18.0.2:8000/domains/example.com/team-mailboxes/bob-guests/members/alice@example.com?role=member
92+
curl -XPUT http://172.18.0.2:8000/domains/example.com/team-mailboxes/bob-guests/members/alice@example.com?role=member
93+
94+
# For test quota
95+
curl -X PUT http://172.18.0.2:8000/quota/users/bob@example.com -d '{"count":200,"size":50000000}' -H "Content-Type: application/json" # 200 emails, 50MB

0 commit comments

Comments
 (0)