from playwright.sync_api import sync_playwright
import time

def testar_autenticacao_visual():
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=False) # Mantive False para você ver
        
        # Carrega o JSON novo
        context = browser.new_context(storage_state="auth_clarity.json")
        page = context.new_page()
        
        print("⏳ Acessando dashboard...")
        page.goto("https://clarity.microsoft.com/projects")
        
        # Espera a rede acalmar para garantir que os elementos carregaram
        page.wait_for_load_state("networkidle")
        time.sleep(3)

        # --- VERIFICAÇÃO VISUAL ---
        
        # Procura por textos que SÓ aparecem quando você NÃO está logado
        # O Clarity geralmente mostra "Sign in" ou "Entrar" ou botões de rede social
        tem_botao_google = page.locator("text=Google").count() > 0
        tem_botao_microsoft = page.locator("text=Microsoft").count() > 0
        
        # Procura por elementos que SÓ aparecem quando você ESTÁ logado
        # Geralmente o botão de "Adicionar novo projeto" ou o avatar do usuário
        tem_projetos = page.locator("text=My projects").count() > 0 or page.locator("text=Meus projetos").count() > 0
        
        if tem_botao_google or tem_botao_microsoft:
            print("❌ FALHA: O script detectou os botões de login na tela.")
            print("Motivo: O arquivo auth_clarity.json não salvou a sessão corretamente.")
        elif tem_projetos:
            print("✅ SUCESSO REAL: Painel de projetos detectado visualmente!")
        else:
            # Caso caia numa tela cinzenta ou carregando infinitamente
            print("⚠️ DÚVIDA: Não achei nem login nem projetos. Veja o print.")
            
        page.screenshot(path="prova_visual_auth.png")
        browser.close()

if __name__ == "__main__":
    testar_autenticacao_visual()