|
| 1 | +from datetime import datetime, timedelta, timezone |
1 | 2 | from unittest.mock import Mock, patch |
2 | 3 |
|
3 | 4 | from allauth.mfa.models import Authenticator |
4 | 5 | from allauth.socialaccount.models import SocialAccount |
| 6 | +from django.contrib.auth.models import User |
5 | 7 | from django.test import override_settings |
6 | 8 | from django.urls import reverse |
7 | 9 | from helpers import PdfDingE2ENoLoginTestCase, PdfDingE2ETestCase |
8 | 10 | from playwright.sync_api import expect, sync_playwright |
| 11 | +from users.models import NAGGING_INTERVAL_WEEKS |
9 | 12 |
|
10 | 13 |
|
11 | 14 | class UsersE2ETestCase(PdfDingE2ETestCase): |
@@ -252,6 +255,30 @@ def test_header_admin(self): |
252 | 255 | self.open(reverse('pdf_overview'), p) |
253 | 256 | expect(self.page.get_by_role("banner")).to_contain_text("Admin") |
254 | 257 |
|
| 258 | + def test_nagging_banner_needs_nagging(self): |
| 259 | + self.user.profile.last_time_nagged = datetime.now(tz=timezone.utc) - timedelta(weeks=NAGGING_INTERVAL_WEEKS + 1) |
| 260 | + self.user.profile.save() |
| 261 | + |
| 262 | + self.assertTrue(self.user.profile.needs_nagging) |
| 263 | + |
| 264 | + with sync_playwright() as p: |
| 265 | + self.open(reverse('pdf_overview'), p) |
| 266 | + expect(self.page.locator("#nagging_banner")).to_be_visible() |
| 267 | + |
| 268 | + self.page.locator("#close_nagging_banner").click() |
| 269 | + expect(self.page.locator("#nagging_banner")).not_to_be_visible() |
| 270 | + |
| 271 | + changed_user = User.objects.get(id=self.user.id) |
| 272 | + self.assertFalse(changed_user.profile.needs_nagging) |
| 273 | + |
| 274 | + def test_nagging_banner_needs_no_nagging(self): |
| 275 | + self.user.profile.last_time_nagged = datetime.now(tz=timezone.utc) - timedelta(weeks=NAGGING_INTERVAL_WEEKS - 1) |
| 276 | + self.user.profile.save() |
| 277 | + |
| 278 | + with sync_playwright() as p: |
| 279 | + self.open(reverse('pdf_overview'), p) |
| 280 | + expect(self.page.locator("#nagging_banner")).not_to_be_visible() |
| 281 | + |
255 | 282 |
|
256 | 283 | class UsersLoginE2ETestCase(PdfDingE2ENoLoginTestCase): |
257 | 284 | def test_login(self): |
@@ -322,7 +349,7 @@ def test_login_demo_mode(self, mock_uuid4, mock_create_demo_user): |
322 | 349 |
|
323 | 350 |
|
324 | 351 | class EditionE2ETestCase(PdfDingE2ETestCase): |
325 | | - @override_settings(SUPPORTER_EDITION=False, DEMO_MODE=True) |
| 352 | + @override_settings(DEMO_MODE=True) |
326 | 353 | def test_demo_mode_sidebar(self): |
327 | 354 | with sync_playwright() as p: |
328 | 355 | self.open(reverse('home'), p) |
|
0 commit comments