tests.org : restructuration

This commit is contained in:
Jean-Christophe Engel 2024-10-14 10:58:57 +02:00
parent 8e3aecb50a
commit ac268e9c1b

157
tests.org
View File

@ -1,17 +1,35 @@
#+TITLE: Paheko : tests des membres
#+AUTHOR: Jean-Christophe Engel
#+LANGUAGE: fr
#+STARTUP: show3levels
#+STARTUP: inlineimages
#+STARTUP: indent
#+OPTIONS: toc:2
* Test paheko
** DONE 01 Installation
*** DONE installation initiale
*** DONE installation sur base existante
*** DONE vérification premier membre
- Exemple de test (après avoir installé un Paheko sur sa machine, sur
le vhost "paheko.localhost", sans base de données) :
- se rendre à l'adresse http://testpaheko.local.bzh
- remplir le formulaire d'installation
- valider le formulaire (cliquer sur le bouton en bas de page)
- sur la page suivante cliquer ensuite sur "configuration" dans le menu
- vérifier que les informations de l'association indiquées lors
l'installation se retrouvent exactement dans les champs de la
configuration
- cliquer sur le menu "Membres"
- vérifier que le membre par défaut est bien dans la liste
- cliquer sur la fiche du membre
- vérifier que l'adresse e-mail et autres infos remplies à
l'installation sont bien là
- mdp admin : interpeller noircir colis allumer
*** DONE 01-01 installation initiale
*** DONE 01-01a installation sur base existante
*** DONE 01-02 vérification premier membre
** DONE 02 Connexion
*** DONE connexion correcte
*** DONE connexion échec identifiant
*** DONE connexion échec mdp
*** DONE 02-01 connexion correcte
*** DONE 02-02 connexion échec identifiant
*** DONE 02-03 connexion échec mdp
** TODO Membres
*** DONE virer commandes d'affichage
*** DONE 03 créer un membre
**** données de la fiche membre
- Catégorie : choisir parmi les possibilités
@ -27,7 +45,7 @@
- Date d'inscription
**** DONE 03-01 standard
**** DONE 03-03 Catégorie « Ancien membre »
***** DONE vérifier catégorie du membre créé
- vérifier catégorie du membre créé
**** DONE 03-04 Inscrit à la lettre
**** DONE 03-05 date bizarre
**** DONE 03-06a attaché à un autre membre (choix unique)
@ -41,36 +59,32 @@
**** DONE 03-93b nom en double accepté
*** DONE 04 lister les membres
**** DONE 04-01 toutes les catégories
***** DONE gérer le cas où les membres occupent plus d'une page
Vérifier si on peut supprimer un tri inutile
- gérer le cas où les membres occupent plus d'une page
- ¿ vérifier si on peut supprimer un tri inutile ?
**** DONE 04-02 toutes catégories sauf cachées
**** DONE 04-03 une seule catégorie
**** DONE tri par différents critères
***** DONE 04-06 num : croissant et décroissant
***** DONE 04-04, 04-05 nom : idem
***** DONE 04-04, 04-05 tri par nom croissant et décroissant
Le nouveau tri est comme ceci :
colonne IS NULL DESC, colonne DESC, numero DESC
(DESC est remplacé par ASC pour un tri croissant)
Autre changement du coup : les champs non-vides sont placés en dernier
pour un tri croissant, en premier pour un tri décroissant.
***** DONE 04-07, 04-08 ville : idem
***** DONE 04-06 numéro décroissant
***** DONE 04-07, 04-08 ville croissant et décroissant
Tri par ville
- ville (dé)croissant, numéro membre (dé)croissant
- ville vide en fin(début), numéro membre (dé)croissant
***** DONE 04-09, 04-10 rattaché à : idem
Pour la colonne "rattaché à" : on met un tri sur la
qualité de parent, puis le nom du parent en premier, puis le nom du
membre, puis son numéro :
- id_parent IS NULL ASC, nom_parent DESC, nom_membre DESC, numero DESC
- parent (dé)croissant, nom membre (dé)croissant, numéro (dé)croissant
- parent vide à la fin, nom membre (dé)croissant, numéro (dé)croissant
***** DONE 04-11, 04-12 responsable : idem
is_parent ASC, nom_membre DESC, numero DESC
***** DONE 04-09, 04-10 tri par membre « rattaché à » croissant et décroissant
- pour la colonne "rattaché à" : on met un tri sur la qualité de
parent, puis le nom du parent en premier, puis le nom du membre,
puis son numéro :
- id_parent IS NULL ASC, nom_parent DESC, nom_membre DESC, numero DESC
- parent (dé)croissant, nom membre (dé)croissant, numéro (dé)croissant
- parent vide à la fin, nom membre (dé)croissant, numéro (dé)croissant
***** DONE 04-11, 04-12 tri par responsable croissant et décroissant
- is_parent ASC, nom_membre DESC, numero DESC
***** DONE 04-90 lister membres sur plusieurs pages
**** DONE consulter fiche
*** DONE 05 rechercher des membres
**** Remarques :
@ -81,16 +95,20 @@ is_parent ASC, nom_membre DESC, numero DESC
- s'il n'y a aucun résultat, la recherche affiche l'onglet
« Recherche avancée » avec une liste de résultats vide
**** DONE chercher par nom
***** DONE 05-01 résultat unique (garantir l'unicité du nom cherché)
***** DONE 05-01 résultat unique
- garantir l'unicité du nom cherché
***** DONE 05-02 plusieurs résultats
***** DONE 05-03 aucun résultat
**** DONE chercher par numéro
***** DONE 05-11 un résultat
***** DONE 05-12 aucun résultat
**** DONE par courriel
***** DONE 05-21 un seul résultat => fiche membre
***** DONE 05-22 0 résultat => onglet « Recherche avancée »
***** DONE 05-23 plusieurs résultats => onglet « Recherche avancée »
***** DONE 05-21 un seul résultat
- => fiche membre
***** DONE 05-22 0 résultat
- => onglet « Recherche avancée »
***** DONE 05-23 plusieurs résultats
- => onglet « Recherche avancée »
*** DONE 06 supprimer un membre
- NB : le tri des membres ne change pas après suppression
**** DONE 06-01 plusieurs membres sélectionnés
@ -114,7 +132,7 @@ is_parent ASC, nom_membre DESC, numero DESC
- date inscription
- enregistrer
- vérifier les infos
**** DONE 07-02 définir le mot de passe du membre
**** DONE 07-02 attribuer un mot de passe à un membre
- sélectionner un membre actif (pas ancien, car pas le droit de se
connecter)
- cliquer Définir mdp
@ -155,14 +173,12 @@ is_parent ASC, nom_membre DESC, numero DESC
membre si le numéro de membre indiqué n'existe pas ou n'est pas
renseigné.
*** DONE 09 exporter des membres
Je ne sais pas ce que permet Selenium, mais si déjà tu peux tester que
ça produit bien un fichier de plus de 0 octets ça sera bien.
- avec le runner :
- avec fenêtre, fichier exporté placé dans le répertoire par défaut ~/Downloads
- sans fenêtre, le fichier est enregistré dans le répertoire de travail... pas toujours !
- MAIS l'ajout d'une opération après le déclenchement de
l'enregistrement permet la bonne terminaison de l'enregistrement
- Je ne sais pas ce que permet Selenium, mais si déjà tu peux tester
que ça produit bien un fichier de plus de 0 octets ça sera bien.
- Résultat avec le runner : le fichier exporté est placé dans le
répertoire ~/Downloads ; parfois l'export échoue
- MAIS l'ajout d'une opération après le déclenchement de
l'enregistrement permet sa bonne terminaison
**** DONE 09-01 export sauf catégories cachées
**** DONE 09-02 export toutes catégories
**** DONE 09-03 export membres actifs
@ -191,8 +207,6 @@ Je ne sais pas ce que permet Selenium, mais si déjà tu peux tester que
- les champs prédéfinis s'ajoutent avant les champs personnalisés et
semble-t-il de temps en temps, le nouveau champ (perso) est ajouté en
avant-dernière position !
- PB : le bouton de suppression finale du champ est pris en compte par
l'IDE mais pas toujours par le runner
***** DONE 11-01 ajout champ perso email
***** DONE 11-02 ajout champ perso url
***** DONE 11-03 ajout champ perso case à cocher
@ -335,36 +349,16 @@ Même si on ne saisit pas un numéro, il sera automatiquement affecté
***** DONE 14-43 droit écriture : modifier admin impossible
***** DONE 14-50 droit administration : suppression autre membre possible
*** TODO supprimer un champ dans la fiche membre
- le clic sur le bouton de confirmation de la suppression n'est pas
pris en compte
- certains champs dépendent d'un autre : âge dépend de l'année de
naissance => on ne peut supprimer année si âge est présent !
- PROBLÈME : le clic sur le bouton de confirmation de la suppression est pris en compte par
l'IDE mais pas toujours par le runner
- même problème en utilisant du code javascript pour ouvrir le
dialogue de confirmation dans un onglet plutôt qu'une popup ; dans
ce cas, c'est la case à cocher qui n'est pas cochée !
- certains champs dépendent d'un autre : âge dépend de l'année de
naissance => on ne peut supprimer année si âge est présent !
**** TODO Suppression adresse postale
- échec => inutile de poursuivre
** prise en main
*** DONE test installation
Exemple de test (après avoir installé un Paheko sur sa machine, sur le
vhost "paheko.localhost", sans base de données) :
- se rendre à l'adresse http://testpaheko.local.bzh
- remplir le formulaire d'installation
- valider le formulaire (cliquer sur le bouton en bas de page)
- sur la page suivante cliquer ensuite sur "configuration" dans le menu
- vérifier que les informations de l'association indiquées lors
l'installation se retrouvent exactement dans les champs de la
configuration
- cliquer sur le menu "Membres"
- vérifier que le membre par défaut est bien dans la liste
- cliquer sur la fiche du membre
- vérifier que l'adresse e-mail et autres infos remplies à
l'installation sont bien là
interpeller noircir colis allumer
*** TODO Démarrer la comptabilité
- échec => inutile de perdre davantage de temps !!!
** TODO Démarrer la comptabilité
- cas normal
- choix du PC
- dates exercice
@ -375,9 +369,8 @@ Même si on ne saisit pas un numéro, il sera automatiquement affecté
- tester erreur saisie dates
- tester modif pays
*** TODO test saisie recette
Un autre test pour la compta :
** TODO test saisie recette
Un autre test pour la compta :
- se rendre à l'adresse http://testpaheko.local.bzh/admin/ (après avoir été
connecté dans un test précédent, que je ne détaille pas ici)
- cliquer sur le menu "Saisie" dans la compta
@ -390,13 +383,11 @@ Même si on ne saisit pas un numéro, il sera automatiquement affecté
- vérifier que le montant de la recette apparaît bien dans les
produits, que le nom du compte est bon, etc.
** Exemples
** Notes
*** parcours table
Voir file:///home/engel/outils/selenium/tuto.side : lister membres
- compter le nombre d'éléments de la table => nb_elem
- itérer avec un compteur (while) => num
- accéder à l'élément courant grâce au compteur //tr[${num}]
| Command | Target | Value |
|-----------------+----------------------------------------------------------+---------|
| storeXpathCount | xpath=//table[@class=\"list\"]/tbody/tr/th//span | nb_elem |
@ -407,16 +398,6 @@ Voir file:///home/engel/outils/selenium/tuto.side : lister membres
| execute script | return ${num} + 1 | num |
| end | | |
*** données structurées
- les objets ne sont pas acceptés par le runner (voir
https://github.com/SeleniumHQ/selenium-ide/issues/1603)
- voir file:///home/engel/outils/selenium/tuto.side forEach
*** envoi fichier
Voir file:///home/engel/devel/recusDons/test/recusDons.side
**Ne fonctionne qu'avec chrome**
- insérer (type) le chemin du fichier dans le champ de saisie du nom
- cliquer le bouton d'envoi
** Notes
*** problème avec instruction conditionnelle dans 4-09 et 4-10
#+BEGIN_SRC bash
if (${nb_parents} >= 2)
@ -464,9 +445,9 @@ Impossible de sélectionner un élément avec l'attribut **display:none**
// refusé par IDE mais accepté par runner
return ${t}[${i}]
#+END_SRC
*** Objet javascript
*** objet javascript
voir https://github.com/SeleniumHQ/selenium-ide/issues/1603
- Syntaxe accès aux objets : ${objet}.attribut ou ${objet}.methode
#+BEGIN_SRC javascript
// refusé par le runner
return ${membre.nom}
@ -474,7 +455,6 @@ return ${membre.nom}
// accepté
return ${membre}.nom;
#+END_SRC
*** input type="checkbox
Pour (dés)activer un /<input type="checkbox"/, il faut utiliser
**(un)check** car le runner (de chrome ?) n'aime pas **click**
@ -482,9 +462,10 @@ Pour (dés)activer un /<input type="checkbox"/, il faut utiliser
L'/appel de fonction/ définie dans le script avec une variable de
l'IDE en param ne fonction qu'avec Chrome. NB : vérifier exactement
ce qui ne fonctionne pas avec firefox ?
*** Envoi de fichier
- Ne fonctionne qu'avec chrome
- insérer (type) le chemin du fichier dans le champ de saisie du nom
- cliquer le bouton d'envoi
- *Important* : Ne pas cliquer sur le bouton d'ouverture du sélecteur
de fichier : il ne se refermera pas et masquera les éléments de la
fenêtre précédente qui ne pourront plus être activés