*** Settings *** Documentation Widget de suivi des transferts Plat'AU / IDE'AU (aussi appelé widget_suivi_tache) Resource resources/resources.robot Library DateTime Suite Setup For Suite Setup Suite Teardown For Suite Teardown ***Keywords *** Configurer et ajouter le widget suivi_tache à la page d’accueil [Arguments] ... ${libelle} ... ${arguments} ... ${profil}=INSTRUCTEUR Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... libelle=${libelle} ... type=file - le contenu du widget provient d'un script sur le serveur ... script=suivi_tache ... arguments=${arguments} ${om_widget} = Ajouter le widget depuis l'URL ${args_om_widget} Set Suite Variable ${om_widget} &{args_om_dashboard} = Create Dictionary ... om_widget=${libelle} ... om_profil=${profil} ... bloc=C1 ... position=1 ${om_dashboard} = Ajouter le widget au tableau de bord du profil depuis l'URL ${args_om_dashboard} Set Suite Variable ${om_dashboard} Insertion d'une tache create_DI_for_consultation en erreur [Arguments] ... ${creation_date}=${None} # Récupère le payload de création DI ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}create_DI_for_consultation_payload_notification_error.json &{task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${json_payload} ... category=platau ... state=error Run Keyword Unless '${creation_date}' == '${None}' Set To Dictionary ${task_values} creation_date=${creation_date} ${task_id} = Ajouter la tâche par WS en utilisant le WS de test ${task_values} [return] ${task_id} *** Test Cases *** Suivi de tâches ajoutées sur un DI [Setup] Run Keywords ... Depuis la page d'accueil admin admin ... AND Rendre les types de dossier d'autorisation détaillés utilisés transmissible à Plat'AU PCI [Teardown] Rendre un type de dossier d'autorisation detailles non transmissible a Plat'AU PCI Depuis la page d'accueil admin admin Ajouter le droit depuis le menu suivi_tache INSTRUCTEUR # Ajout d'un instructeur secondaire à affecter aux dossiers ${instructeur_secondaire_login} = Set Variable instructeur_secondaire_st # isole le contexte du test (création d'une collectivité) &{librecom_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_WIDGET_TACHE ... departement=085 ... commune=145 ... insee=85145 ... direction_code=GR ... direction_libelle=Direction de LIBRECOM_WIDGET_TACHE ... direction_chef=Chef ... division_code=GR ... division_libelle=Division GR ... division_chef=Chef ... guichet_om_utilisateur_nom=Lhalil Kibr ... guichet_om_utilisateur_email=lkibr@openads-test.fr ... guichet_om_utilisateur_login=lkibr ... guichet_om_utilisateur_pwd=lkibr ... instr_om_utilisateur_nom=Lomir Kamb ... instr_om_utilisateur_email=lkamb@openads-test.fr ... instr_om_utilisateur_login=lkamb ... instr_om_utilisateur_pwd=lkamb ... instr_2_om_utilisateur_nom=${instructeur_secondaire_login} ... instr_2_om_utilisateur_email=${instructeur_secondaire_login}@test.fr ... instr_2_om_utilisateur_login=${instructeur_secondaire_login} ... instr_2_om_utilisateur_pwd=${instructeur_secondaire_login} ... code_entite=LBCOM_255 ... acteur=LIBRECOM-ACT-255 Isolation d'un contexte ${librecom_values} # Par défaut le filtre est sur instructeur Depuis le contexte de l'instructeur Lomir Kamb ${id_instructeur} = Get Text css=#instructeur ${om_widget_libelle} = Set Variable TEST045WIDGETSUIVITACHE Configurer et ajouter le widget suivi_tache à la page d’accueil ... libelle=${om_widget_libelle} ... arguments=etat_tache=new\naffichage=liste\ntype_tache=creation_di ... profil=INSTRUCTEUR &{args_petitionnaire} = Create Dictionary ... particulier_nom=AUTRENOMTACHE ... particulier_prenom=AUTREPRENOMTACHE ... om_collectivite=LIBRECOM_WIDGET_TACHE ... localite=PLOP &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... om_collectivite=LIBRECOM_WIDGET_TACHE ... terrain_adresse_localite=PLOPPLOP ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI ${di} Changer l'autorité compétente 'commune état' Ajouter une instruction au DI et la finaliser ${di} accepter un dossier sans réserve # Ajouter une pièce numérisée : ajout_piece &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${DATE_DDMMYYYY} ... document_numerise_type=Test type document numerise de catégorie PLATAU Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values} Depuis la page d'accueil lkamb lkamb Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Contain css=.widget_suivi_tache ${di} Depuis la page d'accueil admin admin # On complète le dossier pour qu'il soit transmissible Depuis le contexte du dossier d'instruction ${di} Click On Form Portlet Action dossier_instruction donnees_techniques modale # On clique sur l'action modifier Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On SubForm Portlet Action donnees_techniques modifier Open fieldset In Subform donnees_techniques engagement-du-declarant Input Text enga_decla_lieu MARSEILLE Input Datepicker enga_decla_date ${DATE_DDMMYYYY} Click On Submit Button In Subform Depuis la page d'accueil lkamb lkamb Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_suivi_tache ${di} Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... etat_tache=new\naffichage=liste\ntype_tache=creation_di;creation_da ... ${om_widget_libelle} Depuis la page d'accueil lkamb lkamb Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_suivi_tache Création DI Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_suivi_tache Création DA Click Element css=.widget_suivi_tache .widget-footer a La page ne doit pas contenir d'erreur Page Should Contain ${di} Click Element css=.col-3 La page ne doit pas contenir d'erreur # On test les autres filtres # Filtre sur tache de flux input ne dois rien afficher dans le widget Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... etat_tache=new\naffichage=liste\ntype_tache=creation_di;creation_da\ncategorie_tache=platau\nflux_tache=input ... ${om_widget_libelle} Depuis la page d'accueil lkamb lkamb Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_suivi_tache Aucune tâche répondant aux critères. # Filtre sur tache de flux output dois afficher des résultats Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... etat_tache=new\naffichage=liste\ntype_tache=creation_di;creation_da\ncategorie_tache=platau\nflux_tache=output ... ${om_widget_libelle} Depuis la page d'accueil lkamb lkamb Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_suivi_tache Création DI Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_suivi_tache Création DA # La categorie tache platau affiche Plat'AU dans le fil d'Arianne sur le listing du widget Click Element css=.widget_suivi_tache .widget-footer a La page ne doit pas contenir d'erreur Element Should Contain css=#title Suivi Des Transferts Plat'AU ${infobulle} = Get Element Attribute css=#infobulle-type title Should Be Equal ${infobulle} Création DA : Création du projet\nCréation demande : Création du dossier d'instruction\nDépôt DI : Dépôt du dossier d'instruction\nModification DI : Modification du dossier d'instruction\nQualification DI : Permet le changement de compétence en état ou commune pour état\nDécision DI : Décision sur le dossier d'instruction\nIncomplétude DI : Incomplétude sur le dossier\nCompletude DI : Complétude sur le dossier\nAjout pièce (sortant) : Ajout d'une pièce au dossier\nAjout pièce (entrant) : Ajout d'une pièce au dossier\nCréation consultation : Création d'une consultation sur le dossier\nModification DA : Modification du projet\nEnvoi contrôle de légalité : Envoi contrôle de légalité\nCréation DI pour consultation : Ajour d'un dossier à partir d'une consultation entrante\nAvis : Avis sur une consultation\nPeC consultation : Prise en compte métier sur une consultation\nMessage : Ajout d'un message au dossier d'instruction \nPrescription : Création d'une préscription\nNotification récépissé : Notification du récépissé\nNotification instruction : Notification de l'instruction\nNotification décision : Notification de la décision\nNotification service consulté : Notification du service consulté\nNotification tiers : Notification du tiers\n # Filtre sur tache qualification DI, ajout_piece et decision di Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... etat_tache=new\naffichage=liste\ntype_tache=qualification_di;decision_di;ajout_piece\ncategorie_tache=platau\nflux_tache=output ... ${om_widget_libelle} Depuis la page d'accueil lkamb lkamb Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_suivi_tache Qualification DI Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_suivi_tache Décision DI Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_suivi_tache Ajout pièce # Par défaut on fltre sur les instructeur, l'instructeur secondaire ne dois donc pas avoir de résultat Depuis la page d'accueil ${instructeur_secondaire_login} ${instructeur_secondaire_login} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Contain css=.widget_suivi_tache Qualification DI Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Contain css=.widget_suivi_tache Décision DI Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Contain css=.widget_suivi_tache Ajout pièce # Filtre sur l'instructeur secondaire du dossier Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=instructeur_secondaire\netat_tache=new\naffichage=liste\ntype_tache=qualification_di;decision_di;ajout_piece\ncategorie_tache=platau\nflux_tache=output ... ${om_widget_libelle} # L'instructeur secondaire dois voir les différentes tâches mais pas l'instructeur Depuis la page d'accueil ${instructeur_secondaire_login} ${instructeur_secondaire_login} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_suivi_tache Qualification DI Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_suivi_tache Décision DI Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_suivi_tache Ajout pièce Depuis la page d'accueil lkamb lkamb Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Contain css=.widget_suivi_tache Qualification DI Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Contain css=.widget_suivi_tache Décision DI Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Contain css=.widget_suivi_tache Ajout pièce #Supprimer le droit ajouté en début de test pour revenir en condition initiale Depuis la page d'accueil admin admin Depuis le listing des droits Use Simple Search libellé suivi_tache Select From List By Label name=selectioncol Tous Click Element css=button#search-submit Wait Until Element Is Visible css=table.tab-tab Click On Link INSTRUCTEUR Click On Form Portlet Action om_droit supprimer Click On Submit Button Le widget affiche une tâche en erreur même sans dossier lié [Setup] Configurer et ajouter le widget suivi_tache à la page d’accueil ... libelle=TEST_045_03_WIDGET_SUIVI_TACHE_NOTIFICATIONS_SANS_DOSSIER ... arguments=etat_tache=error\ncategorie_tache=platau\nflux_tache=input\nfiltre=aucun ... profil=ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL Depuis la page d'accueil admin admin Element Should Not Contain css=.widget_suivi_tache erreur # Pas de tâche # On rajoute la tâche ${task_id} = Insertion d'une tache create_DI_for_consultation en erreur Depuis la page d'accueil admin admin Element Should Contain css=#widget_${om_dashboard} Tâche ${task_id} Un clic sur la liste renvoie vers la tâche s’il n’y a pas de dossier lié # On réutilise le widget installé dans le test précédent # [Setup] Configurer et ajouter le widget suivi_tache à la page d’accueil # ... libelle=TEST_045_03_WIDGET_SUIVI_TACHE_NOTIFICATIONS_SANS_DOSSIER # ... arguments=etat_tache=error\ncategorie_tache=platau\nflux_tache=input\nfiltre=aucun # ... profil=ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL ${task_id} = Insertion d'une tache create_DI_for_consultation en erreur Depuis la page d'accueil admin admin Element Should Contain css=#widget_${om_dashboard} Tâche ${task_id} Click On Link Tâche ${task_id} # Vérifier qu'on est bien sur la page de la tâche Form Value Should Be type create_DI_for_consultation Form Value Should Be state error Click Element Until No More Element css=#fieldset-form-task-json_payload .collapsible.collapsed Element Should Contain css=#fieldset-form-task-json_payload .fieldsetContent "notification": { Le widget filtre sur l'ancienneté de la tâche en fonction de sa configuration [Setup] Configurer et ajouter le widget suivi_tache à la page d’accueil ... libelle=TEST_045_03_WIDGET_SUIVI_TACHE_ANCIENNETE ... arguments=categorie_tache=platau\nflux_tache=input\nfiltre=aucun\ntype_tache=create_DI_for_consultation\netat_tache=error\nnb_jours_anciennete_tache=10 ... profil=ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL ${task_id_today} = Insertion d'une tache create_DI_for_consultation en erreur ${date_minus_11} = Get Current Date increment=-11 days result_format=%Y-%m-%d ${task_id_11_days} = Insertion d'une tache create_DI_for_consultation en erreur ${date_minus_11} ${date_minus_91} = Get Current Date increment=-91 days result_format=%Y-%m-%d ${task_id_91_days} = Insertion d'une tache create_DI_for_consultation en erreur ${date_minus_91} Depuis la page d'accueil admin admin Element Should Contain css=#widget_${om_dashboard} Tâche ${task_id_today} Element Should Not Contain css=#widget_${om_dashboard} Tâche ${task_id_11_days} Element Should Not Contain css=#widget_${om_dashboard} Tâche ${task_id_91_days} # Cliquer sur Voir + Click Link css=#widget_${om_dashboard} .widget-footer a Element Should Contain css=#tab-suivi_tache Tâche ${task_id_today} Element Should Not Contain css=#tab-suivi_tache Tâche ${task_id_11_days} Element Should Not Contain css=#tab-suivi_tache Tâche ${task_id_91_days} Insérer les paramètres suivants dans le widget ... categorie_tache=platau\nflux_tache=input\nfiltre=aucun\ntype_tache=create_DI_for_consultation\netat_tache=error\nnb_jours_anciennete_tache=15 ... TEST_045_03_WIDGET_SUIVI_TACHE_ANCIENNETE Depuis la page d'accueil admin admin Element Should Contain css=#widget_${om_dashboard} Tâche ${task_id_today} Element Should Contain css=#widget_${om_dashboard} Tâche ${task_id_11_days} Element Should Not Contain css=#widget_${om_dashboard} Tâche ${task_id_91_days} # Cliquer sur Voir + Click Link css=#widget_${om_dashboard} .widget-footer a Element Should Contain css=#tab-suivi_tache Tâche ${task_id_today} Element Should Contain css=#tab-suivi_tache Tâche ${task_id_11_days} Element Should Not Contain css=#tab-suivi_tache Tâche ${task_id_91_days}