geotuileur-site

Documentation développeur

Installation et configuration

Le portail est construit sur le framework PHP Symfony. Il nécessite l’installation d’un moteur php >=7.4 avec les extensions xsl et intl ainsi que le logiciel Yarn.

  1. S’assurer que le proxy est correctement configuré (par exemple au moyen des variables d’environnement http_proxy et https_proxy)

  2. Clôner le dépôt

  3. Créer à la racine du projet un fichier nommé .env.local pour surcharger les informations du fichier .env. Se référer au fichier .env pour le compléter.

  4. Installer les dépendances php (composer install)

  5. Installer les dépendances Javascript (yarn install)

  6. Compiler les assets (yarn encore)

Spécificités de l’installation avec Docker

Tests avec Cypress

Prérequis

Activer l’environnement de test :

# .env.local
APP_ENV=test
php bin/console cache:clear

Configurer le baseUrl dans cypress.config.js specifique à votre installation :

baseUrl: "http://localhost:8080",

Lancer si première utilisation de cypress :

yarn cypress install

Configuration supplémentaire pour Linux sous WSL2 : https://nickymeuleman.netlify.app/blog/gui-on-wsl2-cypress

Lancement des tests

Ouvrir l’interface de pilotage de cypress :

yarn cypress open

Lancer les tests (mode headless, sans visuel) :

# le mode headless (--headless) est activé par défaut
yarn cypress run --browser firefox

Lancer les tests (mode headed, avec visuel) :

yarn cypress run --browser firefox --headed

Le navigateur sur lequel on souhaite exécuter les tests doit être installé sur votre machine.

Liste de navigateurs supportés : https://docs.cypress.io/guides/guides/launching-browsers#Browsers

Astuces

Pour le bon fonctionnement de l’intellisense de votre IDE pour cypress, configurer le fichier jsconfig.json ainsi :

"include": ["./node_modules/cypress", "cypress/**/*.js"]

En savoir plus : https://docs.cypress.io/guides/tooling/IDE-integration#Writing-Tests

Structure des tests :

// cypress/e2e/example.cy.js

describe("Description d'une suite de tests", () => {
    context("Un ensemble de tests qui sont regroupés par un contexte particulier (par ex. utilisateur connecté ou non) (optionnel)", () => {
        it("(it ou specify) un scenario représenté par une suite de tâches et vérification d'un comportement attendu (quelque chose qui se passe quand l'utilisateur effectue une action)", () => {
            ...
        })
    })
})

Voir les exemples dans /cypress/e2e

En savoir plus : https://docs.cypress.io/guides/core-concepts/writing-and-organizing-tests#Test-Structure

Documentations diverses

Commandes utiles

Quelques commandes make ont été configurées comme raccourcis pour certaines tâches courantes :

Si vous modifiez des templates twig, vérifiez leur syntaxe avec :

php bin/console lint:twig templates/

Vous pouvez lister toutes les erreurs php avec la commande :

vendor/bin/phpstan analyse -c phpstan.neon