From 23e7262b62837ac17cef8b44cbc96844fa7b8ce1 Mon Sep 17 00:00:00 2001 From: Luis Alvergue Date: Fri, 26 Apr 2024 20:16:08 +0000 Subject: [PATCH] feat(analytics): add tests for custom properties for UTM code information --- tests/pytest/core/test_analytics.py | 56 ++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/tests/pytest/core/test_analytics.py b/tests/pytest/core/test_analytics.py index 49065c557..fcca813b6 100644 --- a/tests/pytest/core/test_analytics.py +++ b/tests/pytest/core/test_analytics.py @@ -1,7 +1,7 @@ import pytest import benefits.core.analytics -from benefits.core.analytics import Event +from benefits.core.analytics import Event, ViewedPageEvent @pytest.mark.django_db @@ -80,3 +80,57 @@ def test_Event_update_user_properties(app_request): assert key in event.user_properties assert event.user_properties[key] == value + + +@pytest.mark.django_db +def test_ViewedPageEvent_sets_default_event_properties(app_request, mocker): + update_spy = mocker.spy(ViewedPageEvent, "update_event_properties") + + ViewedPageEvent(app_request) + + assert "utm_campaign" in update_spy.call_args.kwargs + assert "utm_source" in update_spy.call_args.kwargs + assert "utm_medium" in update_spy.call_args.kwargs + assert "utm_content" in update_spy.call_args.kwargs + assert "utm_term" in update_spy.call_args.kwargs + + +@pytest.mark.django_db +def test_ViewedPageEvent_sets_default_user_properties(app_request, mocker): + update_spy = mocker.spy(ViewedPageEvent, "update_user_properties") + + ViewedPageEvent(app_request) + + assert "utm_campaign" in update_spy.call_args.kwargs + assert "utm_source" in update_spy.call_args.kwargs + assert "utm_medium" in update_spy.call_args.kwargs + assert "utm_content" in update_spy.call_args.kwargs + assert "utm_term" in update_spy.call_args.kwargs + + +@pytest.mark.django_db +def test_ViewedPageEvent_update_event_properties(app_request): + key, value = "key", "value" + event = ViewedPageEvent(app_request) + + assert len(event.event_properties) > 0 + assert key not in event.event_properties + + event.update_event_properties(**{key: value}) + + assert key in event.event_properties + assert event.event_properties[key] == value + + +@pytest.mark.django_db +def test_ViewedPageEvent_update_user_properties(app_request): + key, value = "key", "value" + event = ViewedPageEvent(app_request) + + assert len(event.user_properties) > 0 + assert key not in event.user_properties + + event.update_user_properties(**{key: value}) + + assert key in event.user_properties + assert event.user_properties[key] == value