import os
from pathlib import Path

import pytest
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


@pytest.fixture
def driver():
    # APK milik project sendiri dan UDID dari adb devices.
    apk = Path(os.environ["APP_APK"]).resolve()
    if not apk.is_file():
        raise FileNotFoundError(apk)
    options = UiAutomator2Options().load_capabilities({
        "platformName": "Android",
        "appium:automationName": "UiAutomator2",
        "appium:udid": os.environ["ANDROID_UDID"],
        "appium:app": str(apk),
    })
    session = webdriver.Remote("http://127.0.0.1:4723", options=options)
    try:
        yield session
    finally:
        session.quit()


def test_layar_awal(driver):
    # Ganti dengan content-desc unik dari layar awal APK latihan.
    locator = (AppiumBy.ACCESSIBILITY_ID, os.environ["HOME_ACCESSIBILITY_ID"])
    element = WebDriverWait(driver, 15).until(
        EC.visibility_of_element_located(locator)
    )
    assert element.is_displayed()
