/**
 * Ma vérification, indépendante. On n'utilise que des noms qui n'existent pas,
 * pour ne verrouiller aucun compte réel.
 */
import { signInByUsername } from "@/lib/services/sign-in"

const GHOST = "fantome.audit"
const AUTRE = "fantome.audit.deux"

const reasons: string[] = []
for (let i = 1; i <= 11; i++) {
  const r = await signInByUsername(GHOST, "mauvais")
  reasons.push(r.ok ? "ok" : r.reason)
}
console.log("onze tentatives :", reasons)

const blocked = await signInByUsername(GHOST, "mauvais")
console.log("douzième :", blocked)

// Un autre nom ne partage pas le seau.
console.log("autre nom :", await signInByUsername(AUTRE, "mauvais"))

// Un vrai compte, non touché, doit toujours entrer du premier coup.
console.log("compte réel intact :", await signInByUsername("narin", "admin1"))

// La forme du refus ne doit pas dire si le nom existe. On bloque un vrai
// compte de test, on compare, puis on laisse la fenêtre s'écouler seule.
const reel = "palita"
for (let i = 0; i < 11; i++) await signInByUsername(reel, "mauvais")
const a = await signInByUsername(reel, "mauvais")
const b = await signInByUsername(GHOST, "mauvais")
console.log("comparaison des deux refus :", {
  compteReel: a,
  nomInvente: b,
  memeForme: JSON.stringify(Object.keys(a)) === JSON.stringify(Object.keys(b)),
})

process.exit(0)
