# test_main.py
import subprocess
import uuid
import pytest
from source.server.i import configure_interpreter
from unittest.mock import Mock
from fastapi.testclient import TestClient



@pytest.mark.asyncio
def test_ping(client):
    response = client.get("/ping")
    assert response.status_code == 200
    assert response.text == "pong"


# def test_interpreter_chat(mock_interpreter):
#     # Set up a sample conversation
#     messages = [
#         {"role": "user", "type": "message", "content": "Hello."},
#         {"role": "assistant", "type": "message", "content": "Hi there!"},
#         # Add more messages as needed
#     ]

#     # Configure the mock interpreter with the sample conversation
#     mock_interpreter.messages = messages

#     # Simulate additional user input
#     user_input = {"role": "user", "type": "message", "content": "How are you?"}
#     mock_interpreter.chat([user_input])

#     # Ensure the interpreter processed the user input
#     assert len(mock_interpreter.messages) == len(messages)
#     assert mock_interpreter.messages[-1]["role"] == "assistant"
#     assert "don't have feelings" in mock_interpreter.messages[-1]["content"]

# def test_interpreter_configuration(mock_interpreter):
#     # Test interpreter configuration
#     interpreter = configure_interpreter(mock_interpreter)
#     assert interpreter is not None