Skip to content

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.