"""Worker dispatch: holiday SQS payload and known job events.""" from unittest.mock import MagicMock import pytest from server import jobs def test_holiday_activate_payload_calls_holiday_flow(monkeypatch): activate = MagicMock(return_value={"action": "activate", "date": "2026-07-04"}) monkeypatch.setattr("server.jobs.activate", activate) monkeypatch.setattr("server.jobs.ShiftSchedule", MagicMock) result = jobs.run_job( {"event": "holiday", "action": "activate", "date": "2026-07-04"} ) assert result["action"] == "activate" activate.assert_called_once() assert activate.call_args.args[1] == "2026-07-04" def test_holiday_deactivate_payload_calls_holiday_flow(monkeypatch): deactivate = MagicMock(return_value={"action": "deactivate", "date": "2026-07-04"}) monkeypatch.setattr("server.jobs.deactivate", deactivate) monkeypatch.setattr("server.jobs.ShiftSchedule", MagicMock) result = jobs.run_job( {"event": "holiday", "action": "deactivate", "date": "2026-07-04"} ) assert result["action"] == "deactivate" deactivate.assert_called_once() def test_unknown_job_raises(): with pytest.raises(ValueError, match="unknown job event"): jobs.run_job({"event": "nope"}) def test_weekly_post_dispatches_with_force(monkeypatch): handler = MagicMock(return_value={"posted": True}) monkeypatch.setattr( jobs, "_load_lambda_app", lambda name: MagicMock(handler=handler) if name == "weekly-post" else None, ) result = jobs.run_job({"event": "weekly_post"}) assert result == {"posted": True} assert handler.call_args.args[0]["force"] is True def test_ring_scheduler_events_share_handler(monkeypatch): handler = MagicMock(return_value={"ok": True}) monkeypatch.setattr( jobs, "_load_lambda_app", lambda name: MagicMock(handler=handler), ) jobs.run_job({"event": "ring_scheduler_daily"}) jobs.run_job({"event": "ring_scheduler_weekend"}) assert handler.call_count == 2 assert handler.call_args.args[0]["force"] is True