Fix test failures and workload/websocket behavior
This commit is contained in:
@@ -10,6 +10,7 @@ from app.api.dashboard.router import (
|
||||
get_workload_summary,
|
||||
get_health_summary,
|
||||
)
|
||||
from app.services.workload_service import get_week_bounds
|
||||
from app.schemas.workload import LoadLevel
|
||||
|
||||
|
||||
@@ -99,15 +100,16 @@ class TestTaskStatistics:
|
||||
):
|
||||
"""Helper to create a task with optional characteristics."""
|
||||
now = datetime.utcnow()
|
||||
week_start, week_end = get_week_bounds(now.date())
|
||||
|
||||
if overdue:
|
||||
due_date = now - timedelta(days=3)
|
||||
due_date = datetime.combine(week_start, datetime.min.time()) - timedelta(days=1)
|
||||
elif due_this_week:
|
||||
# Due in the middle of current week
|
||||
due_date = now + timedelta(days=2)
|
||||
due_date = datetime.combine(week_start, datetime.min.time()) + timedelta(days=2)
|
||||
else:
|
||||
# Due next week
|
||||
due_date = now + timedelta(days=10)
|
||||
due_date = datetime.combine(week_end, datetime.min.time()) + timedelta(days=2)
|
||||
|
||||
task = Task(
|
||||
id=task_id,
|
||||
@@ -313,13 +315,26 @@ class TestWorkloadSummary:
|
||||
assert workload.load_percentage == Decimal("0.00")
|
||||
assert workload.load_level == LoadLevel.NORMAL
|
||||
|
||||
def test_zero_capacity(self, db):
|
||||
"""User with zero capacity should show unavailable load level."""
|
||||
data = self.setup_test_data(db)
|
||||
data["user"].capacity = 0
|
||||
db.commit()
|
||||
|
||||
workload = get_workload_summary(db, data["user"])
|
||||
|
||||
assert workload.capacity_hours == Decimal("0")
|
||||
assert workload.load_percentage is None
|
||||
assert workload.load_level == LoadLevel.UNAVAILABLE
|
||||
|
||||
def test_workload_with_tasks(self, db):
|
||||
"""Should calculate correct allocated hours."""
|
||||
data = self.setup_test_data(db)
|
||||
|
||||
# Create tasks due this week with estimates
|
||||
now = datetime.utcnow()
|
||||
due_date = now + timedelta(days=2)
|
||||
week_start, _ = get_week_bounds(now.date())
|
||||
due_date = datetime.combine(week_start, datetime.min.time()) + timedelta(days=2)
|
||||
|
||||
task1 = Task(
|
||||
id="task-wl-1",
|
||||
@@ -359,7 +374,8 @@ class TestWorkloadSummary:
|
||||
data = self.setup_test_data(db)
|
||||
|
||||
now = datetime.utcnow()
|
||||
due_date = now + timedelta(days=2)
|
||||
week_start, _ = get_week_bounds(now.date())
|
||||
due_date = datetime.combine(week_start, datetime.min.time()) + timedelta(days=2)
|
||||
|
||||
# Create task with 48h estimate (> 40h capacity)
|
||||
task = Task(
|
||||
@@ -508,6 +524,7 @@ class TestDashboardAPI:
|
||||
|
||||
# Create a task for the admin user
|
||||
now = datetime.utcnow()
|
||||
week_start, _ = get_week_bounds(now.date())
|
||||
task = Task(
|
||||
id="task-api-dash-001",
|
||||
project_id="project-api-dash-001",
|
||||
@@ -515,7 +532,7 @@ class TestDashboardAPI:
|
||||
assignee_id="00000000-0000-0000-0000-000000000001",
|
||||
status_id="status-api-dash-todo",
|
||||
original_estimate=Decimal("8"),
|
||||
due_date=now + timedelta(days=2),
|
||||
due_date=datetime.combine(week_start, datetime.min.time()) + timedelta(days=2),
|
||||
created_by="00000000-0000-0000-0000-000000000001",
|
||||
is_deleted=False,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user