Aller au contenu

Tests

phil/reporting-bundle

Les tests du bundle

La suite tests/Unit teste le domaine — les bornes d'une période, ses tranches, les limites d'une mesure et d'un ensemble de séries — ; les périodes prédéfinies dans un fuseau horaire et les périodes qui les précèdent ; les sources, les tableaux de bord et les calendriers de la configuration ; les images SVG et les barres ; les mesures et leurs variations dans plusieurs locales ; les requêtes et les tâches écrites puis relues, et chaque forme refusée ; les rapports bornés et vérifiés ligne par ligne ; l'exécuteur avec ses livraisons et ses échecs ; les formats, cellules de formule comprises ; les magasins en répertoire et en mémoire par rapport à un même contrat, identifiants mal formés compris ; la file d'attente, les handlers et le calendrier ; les livraisons ; les composants et l'accès à un tableau de bord réservé ; les téléchargements, la commande et le lien EasyAdmin ; la configuration, les services et les clés des services étiquetés.

La suite tests/Functional démarre un noyau avec TwigComponent, LiveComponent, Messenger sur son transport synchrone et Mailer sur son transport nul. Elle produit le rendu d'un tableau de bord, d'un tableau de bord en direct, d'une mesure et d'un graphique, et exécute un rapport planifié jusqu'à son courriel.

À partir de la racine du monodépôt :

vendor/bin/phpunit packages/reporting-bundle/tests

Infection tient le bundle à un score de 100 % des mutants couverts.

Tester le code qui utilise des rapports

Configurez le magasin memory dans l'environnement de test et figez l'horloge :

# config/packages/test/phil_reporting.yaml
phil_reporting:
    store: memory
$queue->queue(new ReportJob('sales', 'csv', new ReportRequest($periods->period(PeriodPreset::LastMonth))));

self::assertStringStartsWith("Order,Date,Total,Paid\r\n", array_values($exports->contents())[0]);

InMemoryJobStore::ids() et InMemoryExportStore::contents() montrent ce que contiennent les magasins. Une source ou un rapport se teste seul avec une Period construite à la main.