1
0
Fork 0

Detect preferred timezone via JavaScript on register

This commit is contained in:
Christof Dorner 2022-12-10 19:30:04 +01:00
parent 0452731d02
commit 13b262bb7b
4 changed files with 80 additions and 0 deletions

View file

@ -58,6 +58,7 @@ class RegisterViews(TestCase):
"localname": "nutria-user.user_nutria",
"password": "mouseword",
"email": "aa@bb.cccc",
"preferred_timezone": "Europe/Berlin",
},
)
with patch("bookwyrm.views.landing.register.login"):
@ -68,6 +69,7 @@ class RegisterViews(TestCase):
self.assertEqual(nutria.username, f"nutria-user.user_nutria@{DOMAIN}")
self.assertEqual(nutria.localname, "nutria-user.user_nutria")
self.assertEqual(nutria.local, True)
self.assertEqual(nutria.preferred_timezone, "Europe/Berlin")
@patch("bookwyrm.emailing.send_email.delay")
def test_register_email_confirm(self, *_):
@ -198,6 +200,58 @@ class RegisterViews(TestCase):
self.assertEqual(models.User.objects.count(), 1)
validate_html(response.render())
def test_register_default_preferred_timezone(self, *_):
"""invalid preferred timezone strings should just default to UTC"""
view = views.Register.as_view()
self.assertEqual(models.User.objects.count(), 1)
request = self.factory.post(
"register/",
{
"localname": "nutria1",
"password": "mouseword",
"email": "aa1@bb.cccc",
"preferred_timezone": "invalid-tz",
},
)
with patch("bookwyrm.views.landing.register.login"):
response = view(request)
self.assertEqual(response.status_code, 302)
self.assertEqual(models.User.objects.count(), 2)
nutria = models.User.objects.last()
self.assertEqual(nutria.preferred_timezone, "UTC")
request = self.factory.post(
"register/",
{
"localname": "nutria2",
"password": "mouseword",
"email": "aa2@bb.cccc",
"preferred_timezone": "",
},
)
with patch("bookwyrm.views.landing.register.login"):
response = view(request)
self.assertEqual(response.status_code, 302)
self.assertEqual(models.User.objects.count(), 3)
nutria = models.User.objects.last()
self.assertEqual(nutria.preferred_timezone, "UTC")
request = self.factory.post(
"register/",
{
"localname": "nutria3",
"password": "mouseword",
"email": "aa3@bb.cccc",
},
)
with patch("bookwyrm.views.landing.register.login"):
response = view(request)
self.assertEqual(response.status_code, 302)
self.assertEqual(models.User.objects.count(), 4)
nutria = models.User.objects.last()
self.assertEqual(nutria.preferred_timezone, "UTC")
def test_register_closed_instance(self, *_):
"""you can't just register"""
view = views.Register.as_view()