from __future__ import annotations

from pathlib import Path
from playwright.sync_api import Page

from ..selectors import siteadministration as siteadmin_sel
from ...core.artifacts import shot
from ...core.log import log_step, pause


def run(page: Page, cfg, run_dir: Path) -> None:
    siteadmin_sel.ensure_siteadministration(page)
    shot(page, run_dir, "sa-int-01-home")
    log_step("sa-int-01-home", page)
    pause(cfg, "SiteAdmin: home ready")

    menu = page.locator("[data-aroflo-menuitem='Integration']")
    if menu.count() == 0:
        menu = page.get_by_role("link", name="Integration")
    menu.first.click(timeout=5000, force=True)

    page.wait_for_function(
        "() => location.href.toLowerCase().includes('siteadm.int') || location.href.toLowerCase().includes('/ims/site/integration')",
        timeout=45_000,
    )
    shot(page, run_dir, "sa-int-02-ready")
    log_step("sa-int-02-ready", page)
    pause(cfg, "SiteAdmin: Integration ready")
