test(reports): freeze date-sensitive report view cases
This commit is contained in:
@@ -89,10 +89,14 @@ class ReportViewTests(APITestCase):
|
||||
def test_member_only_sees_own_chart_report(self):
|
||||
self.client.force_authenticate(user=self.member)
|
||||
|
||||
response = self.client.get(
|
||||
"/api/reports/chart/",
|
||||
{"workspace": str(self.workspace.id), "period": "this_month"},
|
||||
)
|
||||
with patch(
|
||||
"apps.reports.services.aggregation.timezone.localdate",
|
||||
return_value=date(2026, 4, 20),
|
||||
):
|
||||
response = self.client.get(
|
||||
"/api/reports/chart/",
|
||||
{"workspace": str(self.workspace.id), "period": "this_month"},
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.data["summary"]["total_duration"], "01:00:00")
|
||||
@@ -100,10 +104,14 @@ class ReportViewTests(APITestCase):
|
||||
def test_admin_can_request_combined_table_report(self):
|
||||
self.client.force_authenticate(user=self.admin)
|
||||
|
||||
response = self.client.get(
|
||||
"/api/reports/table/",
|
||||
{"workspace": str(self.workspace.id), "period": "this_month"},
|
||||
)
|
||||
with patch(
|
||||
"apps.reports.services.aggregation.timezone.localdate",
|
||||
return_value=date(2026, 4, 20),
|
||||
):
|
||||
response = self.client.get(
|
||||
"/api/reports/table/",
|
||||
{"workspace": str(self.workspace.id), "period": "this_month"},
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.data["summary"]["total_duration"], "03:00:00")
|
||||
@@ -139,14 +147,18 @@ class ReportViewTests(APITestCase):
|
||||
currency="USD",
|
||||
)
|
||||
|
||||
response = self.client.get(
|
||||
"/api/reports/table/",
|
||||
{
|
||||
"workspace": str(self.workspace.id),
|
||||
"period": "this_month",
|
||||
"user": str(self.owner.id),
|
||||
},
|
||||
)
|
||||
with patch(
|
||||
"apps.reports.services.aggregation.timezone.localdate",
|
||||
return_value=date(2026, 4, 20),
|
||||
):
|
||||
response = self.client.get(
|
||||
"/api/reports/table/",
|
||||
{
|
||||
"workspace": str(self.workspace.id),
|
||||
"period": "this_month",
|
||||
"user": str(self.owner.id),
|
||||
},
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
target_day = next(day for day in response.data["days"] if day["date"] == "2026-04-15")
|
||||
@@ -218,14 +230,22 @@ class ReportViewTests(APITestCase):
|
||||
url = "/api/reports/table/"
|
||||
params = {"workspace": str(self.workspace.id), "period": "this_month"}
|
||||
|
||||
first_response = self.client.get(url, params)
|
||||
with patch(
|
||||
"apps.reports.services.aggregation.timezone.localdate",
|
||||
return_value=date(2026, 4, 20),
|
||||
):
|
||||
first_response = self.client.get(url, params)
|
||||
self.assertEqual(first_response.status_code, 200)
|
||||
self.assertEqual(first_response.data["summary"]["total_duration"], "03:00:00")
|
||||
|
||||
member_entry = TimeEntry.objects.get(description="Member work")
|
||||
TimeEntry.objects.filter(id=member_entry.id).update(duration=timedelta(hours=5))
|
||||
|
||||
cached_response = self.client.get(url, params)
|
||||
with patch(
|
||||
"apps.reports.services.aggregation.timezone.localdate",
|
||||
return_value=date(2026, 4, 20),
|
||||
):
|
||||
cached_response = self.client.get(url, params)
|
||||
self.assertEqual(cached_response.status_code, 200)
|
||||
self.assertEqual(cached_response.data["summary"]["total_duration"], "03:00:00")
|
||||
|
||||
@@ -233,6 +253,10 @@ class ReportViewTests(APITestCase):
|
||||
member_entry.description = "Member work updated"
|
||||
member_entry.save(update_fields=["description"])
|
||||
|
||||
fresh_response = self.client.get(url, params)
|
||||
with patch(
|
||||
"apps.reports.services.aggregation.timezone.localdate",
|
||||
return_value=date(2026, 4, 20),
|
||||
):
|
||||
fresh_response = self.client.get(url, params)
|
||||
self.assertEqual(fresh_response.status_code, 200)
|
||||
self.assertEqual(fresh_response.data["summary"]["total_duration"], "07:00:00")
|
||||
|
||||
Reference in New Issue
Block a user