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)', () {
|
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', () {
|
test('does not show banner when dismissed 1 hour ago', () {
|
||||||
when(spamReportRepository
|
when(spamReportRepository
|
||||||
.getLastTimeDismissedSpamReportedMilliseconds())
|
.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', () {
|
test('shows banner when dismissed 25 hours ago and unread > 0', () {
|
||||||
final spamMailbox = makeSpamMailbox(unreadCount: 3);
|
final spamMailbox = makeSpamMailbox(unreadCount: 3);
|
||||||
when(spamReportRepository
|
when(spamReportRepository
|
||||||
|
|||||||
+5
-5
@@ -126,7 +126,7 @@ void main() {
|
|||||||
.thenAnswer((_) => failureStream(NoUnreadSpamEmailsException()));
|
.thenAnswer((_) => failureStream(NoUnreadSpamEmailsException()));
|
||||||
|
|
||||||
controller.getSpamMailboxCached(testAccountId, testUserName);
|
controller.getSpamMailboxCached(testAccountId, testUserName);
|
||||||
await Future.delayed(const Duration(milliseconds: 100));
|
await untilCalled(storeSpamReportInteractor.execute(any));
|
||||||
|
|
||||||
verify(storeSpamReportInteractor.execute(any)).called(1);
|
verify(storeSpamReportInteractor.execute(any)).called(1);
|
||||||
expect(controller.presentationSpamMailbox.value, isNull);
|
expect(controller.presentationSpamMailbox.value, isNull);
|
||||||
@@ -139,7 +139,7 @@ void main() {
|
|||||||
.thenAnswer((_) => failureStream(NoUnreadSpamEmailsException()));
|
.thenAnswer((_) => failureStream(NoUnreadSpamEmailsException()));
|
||||||
|
|
||||||
controller.getSpamMailboxCached(testAccountId, testUserName);
|
controller.getSpamMailboxCached(testAccountId, testUserName);
|
||||||
await Future.delayed(const Duration(milliseconds: 100));
|
await pumpEventQueue();
|
||||||
|
|
||||||
verifyNever(storeSpamReportInteractor.execute(any));
|
verifyNever(storeSpamReportInteractor.execute(any));
|
||||||
expect(controller.presentationSpamMailbox.value, isNull);
|
expect(controller.presentationSpamMailbox.value, isNull);
|
||||||
@@ -152,7 +152,7 @@ void main() {
|
|||||||
.thenAnswer((_) => failureStream(NoUnreadSpamEmailsException()));
|
.thenAnswer((_) => failureStream(NoUnreadSpamEmailsException()));
|
||||||
|
|
||||||
controller.getSpamMailboxCached(testAccountId, testUserName);
|
controller.getSpamMailboxCached(testAccountId, testUserName);
|
||||||
await Future.delayed(const Duration(milliseconds: 100));
|
await pumpEventQueue();
|
||||||
|
|
||||||
verifyNever(storeSpamReportInteractor.execute(any));
|
verifyNever(storeSpamReportInteractor.execute(any));
|
||||||
expect(controller.presentationSpamMailbox.value, isNull);
|
expect(controller.presentationSpamMailbox.value, isNull);
|
||||||
@@ -167,7 +167,7 @@ void main() {
|
|||||||
.thenAnswer((_) => failureStream(SpamDismissCooldownActiveException()));
|
.thenAnswer((_) => failureStream(SpamDismissCooldownActiveException()));
|
||||||
|
|
||||||
controller.getSpamMailboxCached(testAccountId, testUserName);
|
controller.getSpamMailboxCached(testAccountId, testUserName);
|
||||||
await Future.delayed(const Duration(milliseconds: 100));
|
await pumpEventQueue();
|
||||||
|
|
||||||
verifyNever(storeSpamReportInteractor.execute(any));
|
verifyNever(storeSpamReportInteractor.execute(any));
|
||||||
expect(controller.presentationSpamMailbox.value, isNull);
|
expect(controller.presentationSpamMailbox.value, isNull);
|
||||||
@@ -187,7 +187,7 @@ void main() {
|
|||||||
]));
|
]));
|
||||||
|
|
||||||
controller.getSpamMailboxCached(testAccountId, testUserName);
|
controller.getSpamMailboxCached(testAccountId, testUserName);
|
||||||
await Future.delayed(const Duration(milliseconds: 100));
|
await pumpEventQueue();
|
||||||
|
|
||||||
expect(controller.presentationSpamMailbox.value, isNotNull);
|
expect(controller.presentationSpamMailbox.value, isNotNull);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user