from pathlib import Path
import subprocess


REPO_ROOT = Path(__file__).resolve().parents[2]
SCRIPT_PATH = REPO_ROOT / "deploy" / "deploy-to-nas.sh"


def test_sh_dry_run_uses_default_nas_target():
    result = subprocess.run(
        ["bash", str(SCRIPT_PATH), "--dry-run"],
        cwd=REPO_ROOT,
        capture_output=True,
        text=True,
    )

    assert result.returncode == 0
    assert "Host: 116.62.17.81" in result.stdout
    assert "Port: 9444" in result.stdout
    assert "Username: wkc" in result.stdout
    assert "RemoteRoot: /volume1/webapp/ccdi" in result.stdout


def test_sh_dry_run_accepts_override_arguments():
    result = subprocess.run(
        [
            "bash",
            str(SCRIPT_PATH),
            "10.0.0.8",
            "2222",
            "deploy-user",
            "secret",
            "/volume2/custom/app",
            "--dry-run",
        ],
        cwd=REPO_ROOT,
        capture_output=True,
        text=True,
    )

    assert result.returncode == 0
    assert "Host: 10.0.0.8" in result.stdout
    assert "Port: 2222" in result.stdout
    assert "Username: deploy-user" in result.stdout
    assert "RemoteRoot: /volume2/custom/app" in result.stdout


def test_sh_script_should_render_nas_env_into_stage_package():
    script_text = SCRIPT_PATH.read_text(encoding="utf-8")

    assert 'render_nas_env.py' in script_text
    assert '"${STAGE_ROOT}/.env"' in script_text
