""" ANTI-SIMPLIFICATION: These tests verify the infrastructure of the user action simulator. They MUST NOT be simplified. They ensure that the simulator correctly interacts with the ApiHookClient to mimic real user behavior, which is critical for regression detection. """ from unittest.mock import MagicMock, patch import os import sys # Ensure project root is in path sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "src"))) from simulation.sim_base import BaseSimulation def test_base_simulation_init() -> None: """ Verifies that the BaseSimulation initializes the ApiHookClient correctly. """ with patch('simulation.sim_base.ApiHookClient') as mock_client_class: mock_client = MagicMock() mock_client_class.return_value = mock_client sim = BaseSimulation() # ANTI-SIMPLIFICATION: Ensure the client is stored assert sim.client == mock_client assert sim.sim is not None def test_base_simulation_setup() -> None: """ Verifies that the setup routine correctly resets the GUI state and initializes a clean temporary project for simulation. """ mock_client = MagicMock() mock_client.wait_for_server.return_value = True with patch('simulation.sim_base.WorkflowSimulator') as mock_sim_class: mock_sim = MagicMock() mock_sim_class.return_value = mock_sim sim = BaseSimulation(mock_client) sim.setup("TestSim") # ANTI-SIMPLIFICATION: Verify exact sequence of setup calls mock_client.wait_for_server.assert_called() mock_client.click.assert_any_call("btn_reset") mock_sim.setup_new_project.assert_called() from pathlib import Path assert Path(sim.project_path).as_posix().endswith("tests/artifacts/temp_testsim.toml")