"""Test approvals.""" from product_review.models.approval import Approval from tests.utils.db_utils import create_test_review_queue_item def test_save_approval_no_date(fixture_client): """Test saving an approval without a date.""" create_test_review_queue_item(product_id=4, status="new") result = fixture_client.post("/review-queue/1/approval", json={"user_id": "abc"}) assert result.status_code == 200, result.json new_record = Approval.query.filter(Approval.review_queue_id == 1).first() assert new_record.created_datetime is not None def test_save_approval_with_date(fixture_client): """Test saving an approval with a date.""" create_test_review_queue_item(product_id=4, status="new") result = fixture_client.post( "/review-queue/1/approval", json={"user_id": "abc", "created_datetime": "2023-03-22 21:13:37.666367"}, ) assert result.status_code == 200, result.json new_record = Approval.query.filter(Approval.review_queue_id == 1).first() assert new_record.created_datetime.isoformat() == "2023-03-22T21:13:37.666367" def test_save_approval_with_note(fixture_client): """Test saving an approval with a note.""" create_test_review_queue_item(product_id=4, status="new") result = fixture_client.post( "/review-queue/1/approval", json={"user_id": "abc", "note": "because"}, ) assert result.status_code == 200, result.json new_record = Approval.query.filter(Approval.review_queue_id == 1).first() assert new_record.note == "because" def test_save_approval_not_found(fixture_client): """Test saving an approval for a non-existent item.""" result = fixture_client.post("/review-queue/1/approval", json={"user_id": "abc"}) assert result.status_code == 404, result.json def test_save_approval_already_complete(fixture_client): """Test saving an approval for a completed item.""" create_test_review_queue_item(product_id=4, status="complete") result = fixture_client.post("/review-queue/1/approval", json={"user_id": "abc"}) assert result.status_code == 400, result.json