meal-order-manager/tests/test_close_form.py
Adam Moussa d7ee6a3b74
fix(jobs): run delayed close and reminder deliveries
Wall-clock skip windows dropped the only weekly SQS attempt when Scheduler already fired in Eastern time. Dev schedules stay disabled.
2026-09-21 14:48:59 -04:00

55 lines
2.1 KiB
Python

"""Unit tests for src/server/jobs/close_form.py."""
import os
import sys
from unittest.mock import patch
os.environ.setdefault(
"AGGREGATE_FUNCTION_ARN",
"arn:aws:lambda:us-east-1:000000000000:function:test-aggregate",
)
import importlib.util
_handler_path = os.path.join(
os.path.dirname(__file__), os.pardir, "src", "server", "jobs", "close_form.py"
)
_spec = importlib.util.spec_from_file_location(
"close_form_handler", os.path.abspath(_handler_path)
)
close_form_handler = importlib.util.module_from_spec(_spec)
sys.modules["close_form_handler"] = close_form_handler
_spec.loader.exec_module(close_form_handler)
class TestCloseForm:
@patch("close_form_handler.set_form_status")
@patch("close_form_handler.get_form_status", return_value="open")
@patch("close_form_handler.current_week", return_value="2026-W19")
@patch("close_form_handler._dispatch_job")
def test_closes_open_form(self, mock_lam, mock_week, mock_status, mock_set):
result = close_form_handler.lambda_handler({}, None)
assert result["status"] == "closed"
mock_set.assert_called_once_with("2026-W19", "closed")
mock_lam.assert_called_once_with({"event": "aggregate", "week": "2026-W19"})
@patch("close_form_handler.set_form_status")
@patch("close_form_handler.get_form_status", return_value="open")
@patch("close_form_handler._dispatch_job")
def test_uses_week_from_event(self, mock_lam, mock_status, mock_set):
result = close_form_handler.lambda_handler({"week": "2026-W20"}, None)
assert result["status"] == "closed"
mock_set.assert_called_once_with("2026-W20", "closed")
@patch("close_form_handler.set_form_status")
@patch("close_form_handler.get_form_status", return_value="closed")
@patch("close_form_handler.current_week", return_value="2026-W19")
@patch("close_form_handler._dispatch_job")
def test_already_closed(self, mock_lam, mock_week, mock_status, mock_set):
result = close_form_handler.lambda_handler({}, None)
assert result["status"] == "already_closed"
mock_set.assert_not_called()
mock_lam.assert_not_called()