from fastapi.testclient import TestClient def test_bulk_entry_create_and_update(app): with TestClient(app) as client_a, TestClient(app) as client_b: register_a = client_a.post( "/auth/register", json={"email": "bulk-a@example.com", "password": "strongpasswordBulkA1"}, ) assert register_a.status_code == 200 csrf_a = register_a.json()["csrf_token"] register_b = client_b.post( "/auth/register", json={"email": "bulk-b@example.com", "password": "strongpasswordBulkB1"}, ) assert register_b.status_code == 200 create_range = client_a.post( "/bulk-entry", data={ "from_date": "2026-03-02", "to_date": "2026-03-13", "weekdays_values": ["0", "1", "2", "3", "4"], "start_time": "08:00", "end_time": "12:00", "break_minutes": "0", "mode": "only_missing", "notes": "nachtrag", "csrf_token": csrf_a, }, follow_redirects=False, ) assert create_range.status_code == 303 list_a = client_a.get("/time-entries", params={"from": "2026-03-01", "to": "2026-03-31"}) assert list_a.status_code == 200 assert len(list_a.json()["items"]) == 10 update_range = client_a.post( "/bulk-entry", data={ "from_date": "2026-03-02", "to_date": "2026-03-13", "weekdays_values": ["0", "1", "2", "3", "4"], "start_time": "08:30", "end_time": "13:30", "break_minutes": "30", "mode": "upsert", "notes": "korrigiert", "csrf_token": csrf_a, }, follow_redirects=False, ) assert update_range.status_code == 303 list_a_updated = client_a.get("/time-entries", params={"from": "2026-03-01", "to": "2026-03-31"}) assert list_a_updated.status_code == 200 items = list_a_updated.json()["items"] assert len(items) == 10 assert items[0]["start_time"] == "08:30" assert items[0]["end_time"] == "13:30" assert items[0]["break_minutes"] == 30 assert items[0]["notes"] == "korrigiert" list_b = client_b.get("/time-entries", params={"from": "2026-03-01", "to": "2026-03-31"}) assert list_b.status_code == 200 assert list_b.json()["items"] == []