feat(events): added events business logic
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.test import TestCase
|
||||
|
||||
from apps.events.services import event_type_update
|
||||
from apps.events.tests.helpers import make_event_type
|
||||
|
||||
|
||||
class EventTypeModelTest(TestCase):
|
||||
def test_create_event_type(self) -> None:
|
||||
et = make_event_type(name="page_view", display_name="Page View")
|
||||
self.assertEqual(et.name, "page_view")
|
||||
self.assertEqual(et.display_name, "Page View")
|
||||
self.assertFalse(et.requires_exposure)
|
||||
self.assertTrue(et.is_active)
|
||||
|
||||
def test_create_event_type_with_required_fields(self) -> None:
|
||||
et = make_event_type(
|
||||
name="click",
|
||||
display_name="Click",
|
||||
required_fields=["screen", "element"],
|
||||
)
|
||||
self.assertEqual(et.required_fields, ["screen", "element"])
|
||||
|
||||
def test_unique_name_constraint(self) -> None:
|
||||
make_event_type(name="unique_evt")
|
||||
with self.assertRaises((ValidationError, Exception)):
|
||||
make_event_type(name="unique_evt")
|
||||
|
||||
def test_invalid_name_rejected(self) -> None:
|
||||
with self.assertRaises(ValidationError):
|
||||
make_event_type(name="Invalid Name!")
|
||||
|
||||
def test_update_event_type(self) -> None:
|
||||
et = make_event_type(name="updatable")
|
||||
updated = event_type_update(
|
||||
event_type=et,
|
||||
display_name="Updated Name",
|
||||
requires_exposure=True,
|
||||
)
|
||||
self.assertEqual(updated.display_name, "Updated Name")
|
||||
self.assertTrue(updated.requires_exposure)
|
||||
|
||||
def test_update_disallowed_field(self) -> None:
|
||||
et = make_event_type(name="no_rename")
|
||||
with self.assertRaises(ValidationError):
|
||||
event_type_update(event_type=et, name="renamed")
|
||||
|
||||
def test_archive_event_type(self) -> None:
|
||||
et = make_event_type(name="archivable")
|
||||
updated = event_type_update(event_type=et, is_active=False)
|
||||
self.assertFalse(updated.is_active)
|
||||
Reference in New Issue
Block a user