fixup! fixup! TF-4385 Fix spam banner show it once per day
This commit is contained in:
+33
-1
@@ -86,6 +86,20 @@ void main() {
|
||||
});
|
||||
|
||||
group('cooldown active (dismissed less than 24h ago)', () {
|
||||
test('does not show banner when dismissed 13 hours ago', () {
|
||||
when(spamReportRepository
|
||||
.getLastTimeDismissedSpamReportedMilliseconds())
|
||||
.thenAnswer((_) async => msAgo(13));
|
||||
|
||||
expect(
|
||||
interactor.execute(accountId, userName),
|
||||
emitsInOrder([
|
||||
Right(GetSpamMailboxCachedLoading()),
|
||||
leftWithException<SpamDismissCooldownActiveException>(),
|
||||
]),
|
||||
);
|
||||
});
|
||||
|
||||
test('does not show banner when dismissed 1 hour ago', () {
|
||||
when(spamReportRepository
|
||||
.getLastTimeDismissedSpamReportedMilliseconds())
|
||||
@@ -101,7 +115,25 @@ void main() {
|
||||
});
|
||||
});
|
||||
|
||||
group('cooldown expired (dismissed 24h+ ago)', () {
|
||||
group('cooldown expired (dismissed 24h ago)', () {
|
||||
test('shows banner when dismissed exactly 24 hours ago and unread > 0',
|
||||
() {
|
||||
final spamMailbox = makeSpamMailbox(unreadCount: 3);
|
||||
when(spamReportRepository
|
||||
.getLastTimeDismissedSpamReportedMilliseconds())
|
||||
.thenAnswer((_) async => msAgo(24));
|
||||
when(spamReportRepository.getSpamMailboxCached(accountId, userName))
|
||||
.thenAnswer((_) async => spamMailbox);
|
||||
|
||||
expect(
|
||||
interactor.execute(accountId, userName),
|
||||
emitsInOrder([
|
||||
Right(GetSpamMailboxCachedLoading()),
|
||||
Right(GetSpamMailboxCachedSuccess(spamMailbox)),
|
||||
]),
|
||||
);
|
||||
});
|
||||
|
||||
test('shows banner when dismissed 25 hours ago and unread > 0', () {
|
||||
final spamMailbox = makeSpamMailbox(unreadCount: 3);
|
||||
when(spamReportRepository
|
||||
|
||||
+5
-5
@@ -126,7 +126,7 @@ void main() {
|
||||
.thenAnswer((_) => failureStream(NoUnreadSpamEmailsException()));
|
||||
|
||||
controller.getSpamMailboxCached(testAccountId, testUserName);
|
||||
await Future.delayed(const Duration(milliseconds: 100));
|
||||
await untilCalled(storeSpamReportInteractor.execute(any));
|
||||
|
||||
verify(storeSpamReportInteractor.execute(any)).called(1);
|
||||
expect(controller.presentationSpamMailbox.value, isNull);
|
||||
@@ -139,7 +139,7 @@ void main() {
|
||||
.thenAnswer((_) => failureStream(NoUnreadSpamEmailsException()));
|
||||
|
||||
controller.getSpamMailboxCached(testAccountId, testUserName);
|
||||
await Future.delayed(const Duration(milliseconds: 100));
|
||||
await pumpEventQueue();
|
||||
|
||||
verifyNever(storeSpamReportInteractor.execute(any));
|
||||
expect(controller.presentationSpamMailbox.value, isNull);
|
||||
@@ -152,7 +152,7 @@ void main() {
|
||||
.thenAnswer((_) => failureStream(NoUnreadSpamEmailsException()));
|
||||
|
||||
controller.getSpamMailboxCached(testAccountId, testUserName);
|
||||
await Future.delayed(const Duration(milliseconds: 100));
|
||||
await pumpEventQueue();
|
||||
|
||||
verifyNever(storeSpamReportInteractor.execute(any));
|
||||
expect(controller.presentationSpamMailbox.value, isNull);
|
||||
@@ -167,7 +167,7 @@ void main() {
|
||||
.thenAnswer((_) => failureStream(SpamDismissCooldownActiveException()));
|
||||
|
||||
controller.getSpamMailboxCached(testAccountId, testUserName);
|
||||
await Future.delayed(const Duration(milliseconds: 100));
|
||||
await pumpEventQueue();
|
||||
|
||||
verifyNever(storeSpamReportInteractor.execute(any));
|
||||
expect(controller.presentationSpamMailbox.value, isNull);
|
||||
@@ -187,7 +187,7 @@ void main() {
|
||||
]));
|
||||
|
||||
controller.getSpamMailboxCached(testAccountId, testUserName);
|
||||
await Future.delayed(const Duration(milliseconds: 100));
|
||||
await pumpEventQueue();
|
||||
|
||||
expect(controller.presentationSpamMailbox.value, isNotNull);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user