Tests de la banque¶
Pour le serrurier, couvrir prix 0/250/1000, solde insuffisant, zéro/un/plusieurs comptes personnels
actifs, exclusion des comptes joints/de groupe/fermés/en attente, état vide NUI, retry du même
request_id et rollback avant commit.
BNK-001 — Ouverture de compte et plafond¶
Prérequis : un personnage sans compte.
- Ouvrir un compte personnel auprès d'un PNJ bancaire.
- Répéter jusqu'au plafond configuré, puis tenter une ouverture supplémentaire.
- Ouvrir un compte joint en invitant un second personnage ; ne pas accepter l'invitation puis tenter une opération avec ce second personnage.
Attendu : le compte reçoit un numéro opaque de 12 caractères et un solde nul ; le plafond est strictement appliqué avec message explicite ; le co-titulaire invité n'a aucun accès tant qu'il n'a pas explicitement accepté.
BNK-002 — Dépôt, retrait et transfert au PNJ¶
Prérequis : un personnage avec de l'argent liquide en inventaire et un compte.
- Déposer un montant inférieur ou égal à l'argent liquide détenu, puis un montant supérieur.
- Retirer un montant inférieur ou égal au solde, puis un montant supérieur.
- Transférer vers un second compte par son numéro, vers un numéro inexistant, puis vers le compte source lui-même.
Attendu : dépôt/retrait valides déplacent atomiquement l'objet argent liquide et le solde ; les cas invalides sont rejetés sans aucune écriture partielle ; le transfert valide crédite le destinataire même hors ligne, les cas invalides sont rejetés avant tout débit.
BNK-003 — Carte bancaire au porteur et distributeur¶
Prérequis : un compte avec solde, un titulaire, un second personnage.
- Émettre une carte avec un PIN, puis transférer l'objet carte au second personnage (don ou vol simulé, sans mécanisme dédié).
- Depuis le second personnage, retirer/déposer/consulter le solde à un distributeur avec le bon PIN, sans être titulaire du compte.
- Saisir un PIN erroné trois fois de suite ; saisir un PIN correct entre deux erreurs.
Attendu : le porteur non titulaire opère normalement le compte via la carte (comportement voulu) ; trois échecs consécutifs détruisent la carte et retirent l'objet de l'inventaire ; un succès entre deux échecs remet le compteur à zéro.
BNK-004 — Distributeur natif et ATM personnalisé¶
Prérequis : un ATM natif du jeu accessible et un distributeur personnalisé placé via World Edit.
- Utiliser une carte valide sur l'ATM natif puis sur le distributeur personnalisé.
- Comparer les deux comportements (retrait/dépôt/solde, absence de transfert).
Attendu : les deux origines se comportent identiquement ; aucun transfert n'est proposé ; l'ATM natif ne nécessite ni administration ni configuration préalable.
BNK-005 — PNJ bancaire strictement basé sur l'identité¶
Prérequis : un compte, une carte valide pour ce compte, un personnage non titulaire.
- Depuis le personnage non titulaire porteur de la carte, tenter une opération au PNJ bancaire.
- Depuis un titulaire, tenter une opération sans présenter de carte.
Attendu : le PNJ rejette systématiquement le personnage non titulaire même avec une carte valide correspondante ; le titulaire opère normalement sans carte.
BNK-006 — Comptes joints et de groupe : gouvernance¶
Prérequis : un compte joint (titulaire principal + co-titulaire) et un compte de groupe.
- Depuis le co-titulaire, tenter d'ajouter/retirer un co-titulaire ou de clôturer le compte.
- Depuis le titulaire principal, clôturer le compte avec un solde non nul.
- Depuis un membre de groupe sans
GROUP_CAN_MANAGE_BANK_ACCOUNT, tenter d'opérer le compte de groupe.
Attendu : seul le titulaire principal gère la composition et la clôture ; un solde non nul est automatiquement retiré en argent liquide dans son inventaire au moment de la clôture (échec explicite sans aucune écriture si son inventaire ne peut pas le contenir) ; seul un opérateur habilité du groupe agit sur son compte.
BNK-007 — Groupe supprimé et compte orphelin¶
Prérequis : un compte de groupe avec solde et carte active.
- Supprimer le groupe titulaire.
- Tenter un dépôt/retrait au PNJ bancaire sur ce compte.
- Utiliser la carte existante à un distributeur.
- Consulter le compte dans l'admin web ou F10.
Attendu : le compte reste ouvert avec solde et cartes inchangés ; toute opération au PNJ est rejetée ; la carte reste utilisable au distributeur ; l'admin affiche le dernier nom/tag connu du groupe disparu.
BNK-008 — Signalement cumulé¶
Prérequis : seuil de signalement abaissé pour le test.
- Effectuer des mouvements cumulés sur un compte jusqu'à dépasser le seuil sur la fenêtre glissante.
- Vérifier que le mouvement qui franchit le seuil aboutit normalement.
- Consulter ce mouvement dans l'admin (registre) et via le groupe autorité financière désigné.
Attendu : le mouvement est marqué « à vérifier » sans jamais être bloqué ; il apparaît dans le
registre admin et pour le groupe autorité financière, jamais dans le relevé /bank du joueur avec
plus de détail qu'un mouvement ordinaire.
BNK-009 — Confidentialité de l'acteur par canal¶
Prérequis : un compte joint avec deux co-titulaires, une opération au PNJ et une par carte.
- Comparer, dans
/bank, la ligne d'une opération faite au PNJ par un co-titulaire et celle d'une opération faite par carte. - Comparer avec la vue admin/autorité financière sur le même compte.
Attendu : l'opération au PNJ affiche l'identité du co-titulaire aux autres titulaires ; l'opération par carte n'affiche jamais d'acteur à un joueur, quel qu'il soit ; seule la vue admin/autorité financière voit l'acteur réel des opérations par carte.
BNK-010 — Administration web et F10¶
Prérequis : administrateurs possédant séparément ADMIN_ALLOW_VIEW_BANK_ACCOUNTS,
ADMIN_ALLOW_ADJUST_BANK_BALANCE, ADMIN_ALLOW_VIEW_BANK_LEDGER, ADMIN_ALLOW_MANAGE_BANK_CARDS,
ADMIN_ALLOW_MANAGE_FINANCIAL_AUTHORITY et ADMIN_ALLOW_EDIT_BANKS.
- Dans les deux admins, rechercher un compte, en consulter le détail (titulaire réel, cartes, registre).
- Ajuster un solde avec motif, clôturer un compte à solde nul, activer/désactiver une carte.
- Marquer un mouvement signalé comme vérifié ; désigner puis retirer un groupe comme autorité financière.
- Placer un PNJ bancaire et un distributeur via F10, puis ajuster leur position via l'admin web.
- Répéter chaque action sans la permission dédiée.
Attendu : les deux interfaces convergent et affichent le propriétaire réel malgré l'opacité du numéro de compte pour les joueurs ; chaque action échoue explicitement sans sa permission ; le placement initial n'est possible qu'en jeu (F10), l'admin web n'ajustant qu'une position existante.
BNK-011 — Suppression de personnage et compte orphelin¶
Prérequis : un personnage titulaire unique d'un compte personnel avec solde non nul et une carte active ; un compte joint avec deux co-titulaires.
- Supprimer le personnage titulaire unique depuis l'admin.
- Consulter le compte : solde, carte et titulaires dans l'admin web ou F10.
- Supprimer l'un des deux co-titulaires du compte joint, puis consulter ce compte.
Attendu : la suppression du personnage n'est jamais bloquée par un compte non vide ; le compte personnel reste ouvert avec solde et carte inchangés, sans titulaire restant, et l'admin affiche le nom du personnage supprimé à sa place ; le compte joint reste opéré normalement par le co-titulaire restant, sans aucun nom de titulaire supprimé affiché puisqu'il n'est pas devenu orphelin.
BNK-012 — Synchronisation des terminaux dégradée¶
Couper l'API pendant plusieurs polls, demander une modification admin pendant une lecture en cours, puis restaurer l'API.
Attendu : le cache courant reste servi, une seule lecture est active, la lecture forcée est
rejouée après la requête en cours, puis tous les clients reçoivent la version enregistrée. Les logs
n'affichent qu'une panne et un rétablissement, sans undefined.
BNK-013 — Modèle et cycle d'interaction des terminaux¶
Prérequis : un personnage chargé, une agence créée avec le modèle par défaut, un ATM
personnalisé et un ATM natif. Pour la migration, préparer aussi un PNJ s_m_m_bankman, un PNJ à
modèle personnalisé et un ATM portant techniquement ce même ancien nom.
- Appliquer la migration puis vérifier les modèles persistés des trois terminaux de test.
- Approcher le PNJ, attendre le popup et relâcher
Eune seule fois. - Tant que le guichet est ouvert, vérifier que le popup ne réapparaît pas ; fermer par le bouton,
puis recommencer et fermer avec
Escape. - Rejouer l'ouverture/fermeture sur l'ATM personnalisé puis l'ATM natif.
- Déclencher le PNJ sans personnage chargé, puis réessayer une fois le personnage chargé.
- Ouvrir
/banket l'application Banque F2 hors interaction.
Attendu : seul le PNJ portant exactement l'ancien modèle devient u_m_m_bankman; le modèle
personnalisé et l'ATM ne changent pas. Chaque pression ouvre une seule NUI, le verrou masque le
popup jusqu'à la fermeture et se libère aussi après le refus. Les deux familles d'ATM restent
utilisables. /bank et l'ARPhone restent en lecture seule et ne laissent aucun verrou résiduel.
ARPhone¶
Depuis F2, vérifier comptes, soldes et transactions, puis l'absence de mutation. Rejouer agence, ATM et /bank.
Paiements énergie¶
Tester les limites 0, 0,01, 1, 1,01 et 2,20, les trois sources, réservations, refunds,
retry et ledger en suivant Tests du système énergie.