initial commit
This commit is contained in:
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
from django.test import RequestFactory, TestCase
|
||||
|
||||
from apps.core.context_processors import site_branding
|
||||
from apps.core.models import SiteBranding
|
||||
|
||||
|
||||
class SiteBrandingModelTests(TestCase):
|
||||
def test_load_creates_singleton(self):
|
||||
branding = SiteBranding.load()
|
||||
self.assertEqual(branding.pk, 1)
|
||||
self.assertEqual(SiteBranding.objects.count(), 1)
|
||||
|
||||
def test_icon_style_includes_border_when_enabled(self):
|
||||
branding = SiteBranding.load()
|
||||
branding.show_border = True
|
||||
branding.border_color = "#ffffff"
|
||||
branding.border_width = 2
|
||||
branding.navbar_icon_size = 30
|
||||
style = branding.navbar_icon_style
|
||||
self.assertIn("width:30px", style)
|
||||
self.assertIn("border:2px solid #ffffff", style)
|
||||
|
||||
def test_icon_style_omits_border_when_disabled(self):
|
||||
branding = SiteBranding.load()
|
||||
branding.show_border = False
|
||||
self.assertNotIn("border:", branding.navbar_icon_style)
|
||||
|
||||
|
||||
class SiteBrandingContextProcessorTests(TestCase):
|
||||
def test_site_branding_in_context(self):
|
||||
SiteBranding.load()
|
||||
request = RequestFactory().get("/")
|
||||
ctx = site_branding(request)
|
||||
self.assertIn("site_branding", ctx)
|
||||
self.assertIsInstance(ctx["site_branding"], SiteBranding)
|
||||
@@ -0,0 +1,55 @@
|
||||
from django.test import Client, RequestFactory, TestCase
|
||||
|
||||
from apps.core.context_processors import site_contact
|
||||
from apps.core.models import SiteContact
|
||||
|
||||
|
||||
class SiteContactModelTests(TestCase):
|
||||
def test_office_address_lines_skips_blank_lines(self):
|
||||
contact = SiteContact.load()
|
||||
contact.office_address = "Line one\n\nLine two"
|
||||
self.assertEqual(contact.office_address_lines, ["Line one", "Line two"])
|
||||
|
||||
def test_has_footer_contact_requires_email_or_office(self):
|
||||
contact = SiteContact.load()
|
||||
contact.support_email = ""
|
||||
contact.office_address = ""
|
||||
contact.discord_url = "https://discord.gg/example"
|
||||
self.assertFalse(contact.has_footer_contact)
|
||||
self.assertTrue(contact.has_discord)
|
||||
|
||||
def test_discord_label_default(self):
|
||||
contact = SiteContact.load()
|
||||
contact.discord_label = ""
|
||||
self.assertEqual(contact.discord_label_display, "Join Discord")
|
||||
|
||||
|
||||
class SiteContactContextProcessorTests(TestCase):
|
||||
def test_site_contact_in_context(self):
|
||||
SiteContact.load()
|
||||
request = RequestFactory().get("/")
|
||||
ctx = site_contact(request)
|
||||
self.assertIn("site_contact", ctx)
|
||||
self.assertIsInstance(ctx["site_contact"], SiteContact)
|
||||
|
||||
|
||||
class SiteContactTemplateTests(TestCase):
|
||||
def test_footer_hides_email_when_empty(self):
|
||||
contact = SiteContact.load()
|
||||
contact.support_email = ""
|
||||
contact.discord_url = ""
|
||||
contact.office_address = ""
|
||||
contact.save()
|
||||
response = Client().get("/")
|
||||
self.assertNotContains(response, "mailto:")
|
||||
self.assertNotContains(response, "discord.gg")
|
||||
|
||||
def test_contact_page_hides_sidebar_when_empty(self):
|
||||
contact = SiteContact.load()
|
||||
contact.support_email = ""
|
||||
contact.discord_url = ""
|
||||
contact.office_address = ""
|
||||
contact.save()
|
||||
response = Client().get("/contact/")
|
||||
self.assertNotContains(response, "contact-sidebar")
|
||||
self.assertContains(response, "contact-layout--full")
|
||||
Reference in New Issue
Block a user