import pytest
from muse2api.config import Settings
from muse2api.drivers.registry import create_driver
from muse2api.drivers.invisible import InvisiblePlaywrightDriver


def test_create_invisible_driver():
    settings = Settings(driver="invisible")
    driver = create_driver(settings)
    assert isinstance(driver, InvisiblePlaywrightDriver)
    assert driver.name == "invisible"
    assert driver.capabilities.chat is True
    assert driver.capabilities.image is True
    assert driver.capabilities.video is True
    assert driver.capabilities.renew_session is True


def test_create_invisible_playwright_aliases():
    for name in ("invisible_playwright", "playwright"):
        settings = Settings(driver=name)
        driver = create_driver(settings)
        assert isinstance(driver, InvisiblePlaywrightDriver)


@pytest.mark.asyncio
async def test_invisible_driver_health_when_unstarted():
    settings = Settings(driver="invisible")
    driver = create_driver(settings)
    h = await driver.health()
    assert h["driver"] == "invisible"
    assert h["ok"] is False
    assert h["tabs"] == 0
