Auth — Casos de Borda
Gerado pelo Writer (Reversa) em 2026-05-11
EC-01 — autenticar() sem internet
Descrição: authorize(config) ou Api.auth(credenciais) lança exceção por falta de conectividade.
Comportamento esperado: Toast "Não foi possível se autenticar. Você está com internet?" + Sentry.captureException. 🟢
EC-02 — Credenciais no keychain com formato inválido
Descrição: WebCredentialsStrategy.getGenericPassword faz JSON.parse — se password for texto inválido, retorna false após removeItem.
Comportamento esperado: 🟢 Formato inválido removido automaticamente; fluxo recai para novo login.
EC-03 — revoke falha no logout
Descrição: revoke(config, {...}) falha (timeout, erro de rede).
Comportamento esperado: 🟢 catch {} silencioso; keychain e store locais sempre limpos.
Risco: 🟡 Token refreshToken permanece válido no servidor Google — possível uso por terceiros com acesso ao dispositivo.
EC-04 — Web: window.localStorage indisponível (SSR, iframe sandboxado)
Descrição: resolveStorage() captura exceção ao acessar globalThis.localStorage.
Comportamento esperado: 🟡 Fallback para memoryStorage — dados perdidos ao recarregar a página.
EC-05 — Token válido por menos de 1 minuto
Descrição: isAtiva() considera expiração com folga de 1 minuto (dataExpiracao - umMinuto > agora).
Comportamento esperado: 🟢 Token quase-expirado dispara refresh antes de uso — evita rejeição do backend.
Risco: 🟡 Se o relógio do dispositivo estiver adiantado, tokens ainda válidos podem ser refreshed desnecessariamente.