tests.org : restructuration

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

151
tests.org
View File

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