This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
|
||||
def test_weekly_target_scopes(app):
|
||||
with TestClient(app) as client:
|
||||
register = client.post(
|
||||
"/auth/register",
|
||||
json={"email": "scope@example.com", "password": "strongpasswordScope1"},
|
||||
)
|
||||
assert register.status_code == 200
|
||||
csrf = register.json()["csrf_token"]
|
||||
|
||||
create_w1 = client.post(
|
||||
"/time-entries",
|
||||
headers={"x-csrf-token": csrf},
|
||||
json={
|
||||
"date": "2026-03-02", # Montag
|
||||
"start_time": "08:00",
|
||||
"end_time": "13:00",
|
||||
"break_minutes": 0,
|
||||
},
|
||||
)
|
||||
assert create_w1.status_code == 200
|
||||
|
||||
create_w2 = client.post(
|
||||
"/time-entries",
|
||||
headers={"x-csrf-token": csrf},
|
||||
json={
|
||||
"date": "2026-03-09", # Folgewoche
|
||||
"start_time": "08:00",
|
||||
"end_time": "13:00",
|
||||
"break_minutes": 0,
|
||||
},
|
||||
)
|
||||
assert create_w2.status_code == 200
|
||||
|
||||
week1_default = client.get("/reports/week", params={"date": "2026-03-02"})
|
||||
assert week1_default.status_code == 200
|
||||
assert week1_default.json()["weekly_soll_minutes"] == 1500
|
||||
|
||||
change_current = client.post(
|
||||
"/weekly-target",
|
||||
data={
|
||||
"week_start": "2026-03-02",
|
||||
"weekly_target_hours": "20",
|
||||
"scope": "current_week",
|
||||
"csrf_token": csrf,
|
||||
},
|
||||
follow_redirects=False,
|
||||
)
|
||||
assert change_current.status_code == 303
|
||||
|
||||
week1_changed = client.get("/reports/week", params={"date": "2026-03-02"})
|
||||
week2_after_current = client.get("/reports/week", params={"date": "2026-03-09"})
|
||||
assert week1_changed.json()["weekly_soll_minutes"] == 1200
|
||||
assert week2_after_current.json()["weekly_soll_minutes"] == 1500
|
||||
|
||||
change_future = client.post(
|
||||
"/weekly-target",
|
||||
data={
|
||||
"week_start": "2026-03-09",
|
||||
"weekly_target_hours": "30",
|
||||
"scope": "from_current_week",
|
||||
"csrf_token": csrf,
|
||||
},
|
||||
follow_redirects=False,
|
||||
)
|
||||
assert change_future.status_code == 303
|
||||
|
||||
week2_changed = client.get("/reports/week", params={"date": "2026-03-09"})
|
||||
assert week2_changed.json()["weekly_soll_minutes"] == 1800
|
||||
|
||||
change_all = client.post(
|
||||
"/weekly-target",
|
||||
data={
|
||||
"week_start": "2026-03-09",
|
||||
"weekly_target_hours": "22",
|
||||
"scope": "all_weeks",
|
||||
"csrf_token": csrf,
|
||||
},
|
||||
follow_redirects=False,
|
||||
)
|
||||
assert change_all.status_code == 303
|
||||
|
||||
week1_all = client.get("/reports/week", params={"date": "2026-03-02"})
|
||||
week2_all = client.get("/reports/week", params={"date": "2026-03-09"})
|
||||
assert week1_all.json()["weekly_soll_minutes"] == 1320
|
||||
assert week2_all.json()["weekly_soll_minutes"] == 1320
|
||||
Reference in New Issue
Block a user