TF-3614 E2E quota view increase
This commit is contained in:
@@ -0,0 +1 @@
|
||||
class NullQuotaException implements Exception {}
|
||||
@@ -6,12 +6,15 @@ import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/label_mailbox_item_widget.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_item_widget.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/presentation/mailbox_creator_view.dart';
|
||||
import 'package:tmail_ui_user/features/quotas/presentation/quotas_controller.dart';
|
||||
import 'package:tmail_ui_user/features/search/mailbox/presentation/search_mailbox_view.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
|
||||
import '../base/core_robot.dart';
|
||||
import '../exceptions/mailbox/null_inbox_unread_count_exception.dart';
|
||||
import '../integration_test/exceptions/mailbox/null_quota_exception.dart';
|
||||
|
||||
class MailboxMenuRobot extends CoreRobot {
|
||||
MailboxMenuRobot(super.$);
|
||||
@@ -109,4 +112,17 @@ class MailboxMenuRobot extends CoreRobot {
|
||||
Future<void> confirmSignOut() async {
|
||||
await $(AppLocalizations().yesLogout).tap();
|
||||
}
|
||||
|
||||
int getUsedQuota() {
|
||||
final usedQuota =
|
||||
getBinding<QuotasController>()?.octetsQuota.value?.used?.value.toInt();
|
||||
if (usedQuota == null) throw NullQuotaException();
|
||||
|
||||
return usedQuota;
|
||||
}
|
||||
|
||||
Future<void> refreshQuota() async {
|
||||
getBinding<QuotasController>()?.reloadQuota();
|
||||
await $.pumpAndSettle(duration: const Duration(seconds: 2));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
import '../../base/base_test_scenario.dart';
|
||||
import '../../models/provisioning_email.dart';
|
||||
import '../../robots/mailbox_menu_robot.dart';
|
||||
import '../../robots/thread_robot.dart';
|
||||
|
||||
class QuotaCountScenario extends BaseTestScenario {
|
||||
const QuotaCountScenario(super.$);
|
||||
|
||||
@override
|
||||
Future<void> runTestLogic() async {
|
||||
const email = String.fromEnvironment('BASIC_AUTH_EMAIL');
|
||||
|
||||
final threadRobot = ThreadRobot($);
|
||||
final mailboxMenuRobot = MailboxMenuRobot($);
|
||||
|
||||
await threadRobot.openMailbox();
|
||||
final beforeUsedQuota = mailboxMenuRobot.getUsedQuota();
|
||||
|
||||
final file = await preparingTxtFile('some content');
|
||||
await provisionEmail([ProvisioningEmail(
|
||||
toEmail: email,
|
||||
subject: 'test increase quota',
|
||||
content: '',
|
||||
attachmentPaths: [file.path],
|
||||
)]);
|
||||
await mailboxMenuRobot.refreshQuota();
|
||||
final afterUsedQuota = mailboxMenuRobot.getUsedQuota();
|
||||
|
||||
_expectQuotaIncreased(beforeUsedQuota, afterUsedQuota);
|
||||
}
|
||||
|
||||
void _expectQuotaIncreased(int before, int after) {
|
||||
expect(after, greaterThan(before));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import '../../base/test_base.dart';
|
||||
import '../../scenarios/mailbox/quota_count_scenario.dart';
|
||||
|
||||
void main() {
|
||||
TestBase().runPatrolTest(
|
||||
description: 'Should see quota increase when send email successfully',
|
||||
scenarioBuilder: ($) => QuotaCountScenario($),
|
||||
);
|
||||
}
|
||||
@@ -89,4 +89,7 @@ done
|
||||
# For test team mailbox
|
||||
curl -XPUT http://172.18.0.2:8000/domains/example.com/team-mailboxes/bob-guests
|
||||
curl -XPUT http://172.18.0.2:8000/domains/example.com/team-mailboxes/bob-guests/members/bob@example.com?role=member
|
||||
curl -XPUT http://172.18.0.2:8000/domains/example.com/team-mailboxes/bob-guests/members/alice@example.com?role=member
|
||||
curl -XPUT http://172.18.0.2:8000/domains/example.com/team-mailboxes/bob-guests/members/alice@example.com?role=member
|
||||
|
||||
# For test quota
|
||||
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
|
||||
Reference in New Issue
Block a user