Files
VacatureRadar/tests/integration/test_intelligence_views.py
T

81 lines
2.6 KiB
Python

from __future__ import annotations
import pytest
from django.contrib.auth import get_user_model
from django.urls import reverse
from apps.jobs.models import Feedback
@pytest.mark.integration
@pytest.mark.django_db
@pytest.mark.parametrize(
"route_name",
["jobs:activity", "jobs:employers", "dashboard:system"],
)
def test_intelligence_routes_require_login(client, route_name):
response = client.get(reverse(route_name))
assert response.status_code == 302
assert reverse("login") in response.url
@pytest.mark.integration
@pytest.mark.django_db
def test_activity_feed_filters_and_scopes_user_events(client, user, job):
other = get_user_model().objects.create_user(username="activity-other")
Feedback.objects.create(
user=other,
job=job,
action=Feedback.Action.HIDE,
reason="private-other-marker",
)
Feedback.objects.create(
user=user,
job=job,
action=Feedback.Action.INTERESTING,
reason="own-event-marker",
)
client.force_login(user)
response = client.get(reverse("jobs:activity"), {"type": "feedback"})
assert response.status_code == 200
body = response.content.decode("utf-8")
assert "own-event-marker" in body
assert "private-other-marker" not in body
assert response.context["event_page"].paginator.count == 1
@pytest.mark.integration
@pytest.mark.django_db
def test_employer_index_and_detail_use_real_aggregates(client, user, profile, job, source):
client.force_login(user)
response = client.get(reverse("jobs:employers"), {"q": job.employer.name})
assert response.status_code == 200
assert response.context["selected_employer"].pk == job.employer_id
assert response.context["selected_employer"].active_vacancies == 1
assert response.context["selected_employer"].relevant_vacancies == 1
assert job.original_title in response.content.decode("utf-8")
detail = client.get(reverse("jobs:employer-detail", kwargs={"pk": job.employer_id}))
assert detail.status_code == 200
assert detail.context["employer"].pk == job.employer_id
assert [item.pk for item in detail.context["recent_jobs"]] == [job.pk]
@pytest.mark.integration
@pytest.mark.django_db
def test_automation_center_labels_unmeasured_runtime_honestly(client, user):
client.force_login(user)
response = client.get(reverse("dashboard:system"))
assert response.status_code == 200
body = response.content.decode("utf-8")
assert "Automation center" in body
assert "worker niet gemeten" in body or "Eager/lokaal" in body
assert "Niet geconfigureerd" in body
assert len(response.context["phase_rows"]) == 8