mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-06-25 16:19:19 +02:00
Combine phpstan, cs-check, cs-fix into lint-php recipe; fix lint issues + test failures + duplicate detection bug
This commit is contained in:
@@ -191,12 +191,12 @@ try {
|
||||
];
|
||||
$split = $tfe->testSplitJuryByRole($jury);
|
||||
|
||||
plAssertEq(['Alice'], $split['presidents'], 'president');
|
||||
plAssertEq(['Bob'], $split['internes'], 'interne promoteur');
|
||||
plAssertEq(['Carol'], $split['ulb'], 'ulb promoteur');
|
||||
plAssertEq(['Dave'], $split['externes'], 'externe promoteur (non-ULB)');
|
||||
plAssertEq(['Eve'], $split['lecteurs_internes'], 'lecteur interne');
|
||||
plAssertEq(['Frank'], $split['lecteurs_externes'], 'lecteur externe');
|
||||
plAssertEq(['Alice'], $split['presidents'], 'president');
|
||||
plAssertEq(['Bob'], $split['internes'], 'interne promoteur');
|
||||
plAssertEq(['Carol'], $split['ulb'], 'ulb promoteur');
|
||||
plAssertEq(['Dave'], $split['externes'], 'externe promoteur (non-ULB)');
|
||||
plAssertEq(['Eve'], $split['lecteurs_internes'], 'lecteur interne');
|
||||
plAssertEq(['Frank'], $split['lecteurs_externes'], 'lecteur externe');
|
||||
echo "\n";
|
||||
|
||||
echo "A11: splitJuryByRole — empty name skipped\n";
|
||||
@@ -207,10 +207,10 @@ try {
|
||||
|
||||
echo "A12: splitJuryByRole — empty jury returns all-empty arrays\n";
|
||||
$split = $tfe->testSplitJuryByRole([]);
|
||||
plAssertEq([], $split['presidents'], 'presidents empty');
|
||||
plAssertEq([], $split['internes'], 'internes empty');
|
||||
plAssertEq([], $split['ulb'], 'ulb empty');
|
||||
plAssertEq([], $split['externes'], 'externes empty');
|
||||
plAssertEq([], $split['presidents'], 'presidents empty');
|
||||
plAssertEq([], $split['internes'], 'internes empty');
|
||||
plAssertEq([], $split['ulb'], 'ulb empty');
|
||||
plAssertEq([], $split['externes'], 'externes empty');
|
||||
plAssertEq([], $split['lecteurs_internes'], 'lecteurs_internes empty');
|
||||
plAssertEq([], $split['lecteurs_externes'], 'lecteurs_externes empty');
|
||||
echo "\n";
|
||||
@@ -250,20 +250,20 @@ try {
|
||||
// ── B1: autofocusFieldForError ────────────────────────────────────────────
|
||||
echo "B1: autofocusFieldForError — known error messages map to fields\n";
|
||||
$cases = [
|
||||
["Titre du mémoire", 'titre'],
|
||||
["Nom/Prénom/Pseudo", 'auteurice'],
|
||||
["Synopsis", 'synopsis'],
|
||||
["Année invalide", 'année'],
|
||||
["orientation", 'orientation'],
|
||||
["Atelier Pratique", 'ap'],
|
||||
["finalité", 'finality'],
|
||||
["langue", 'languages'],
|
||||
["promoteur", 'jury_promoteur'],
|
||||
["lecteur·ice interne", 'jury_lecteur_interne[]'],
|
||||
["lecteur·ice externe", 'jury_lecteur_externe[]'],
|
||||
["format", 'formats'],
|
||||
["licence", 'license_id'],
|
||||
["Lien URL", 'lien'],
|
||||
['Titre du TFE', 'titre'],
|
||||
["Le champ 'Auteur·ice(s)' est requis.", 'auteurice'],
|
||||
['Synopsis', 'synopsis'],
|
||||
['Année invalide', 'année'],
|
||||
['orientation', 'orientation'],
|
||||
['Atelier Pratique', 'ap'],
|
||||
['finalité', 'finality'],
|
||||
['langue', 'languages'],
|
||||
['promoteur', 'jury_promoteur'],
|
||||
['lecteur·ice interne', 'jury_lecteur_interne[]'],
|
||||
['lecteur·ice externe', 'jury_lecteur_externe[]'],
|
||||
['format', 'formats'],
|
||||
['licence', 'license_id'],
|
||||
['Lien URL', 'lien'],
|
||||
];
|
||||
foreach ($cases as [$message, $expected]) {
|
||||
$actual = ThesisCreateController::autofocusFieldForError($message);
|
||||
@@ -312,18 +312,18 @@ try {
|
||||
// ── B5: generateAuthorSlug ────────────────────────────────────────────────
|
||||
echo "B5: generateAuthorSlug — basic ASCII\n";
|
||||
plAssertEq('JANE_DOE', $createCtrl->testGenerateAuthorSlug('Jane Doe'), 'spaces to underscores, uppercase');
|
||||
plAssertEq('AUTHOR', $createCtrl->testGenerateAuthorSlug(''), 'empty → AUTHOR');
|
||||
plAssertEq('AUTHOR', $createCtrl->testGenerateAuthorSlug(''), 'empty → AUTHOR');
|
||||
echo "\n";
|
||||
|
||||
echo "B6: generateAuthorSlug — French accents stripped\n";
|
||||
plAssertEq('ELEONORE_DUPONT', $createCtrl->testGenerateAuthorSlug('Éléonore Dupont'), 'accents stripped');
|
||||
plAssertEq('FRANCOISE', $createCtrl->testGenerateAuthorSlug('Françoise'), 'ç → C');
|
||||
plAssertEq('FRANCOISE', $createCtrl->testGenerateAuthorSlug('Françoise'), 'ç → C');
|
||||
echo "\n";
|
||||
|
||||
echo "B7: generateAuthorSlug — multiple authors comma-separated\n";
|
||||
$slug = $createCtrl->testGenerateAuthorSlug('Alice Martin, Bob Durand');
|
||||
plAssert(str_contains($slug, 'ALICE'), 'contains ALICE');
|
||||
plAssert(str_contains($slug, 'BOB'), 'contains BOB');
|
||||
plAssert(str_contains($slug, 'BOB'), 'contains BOB');
|
||||
echo "\n";
|
||||
|
||||
// =========================================================================
|
||||
@@ -345,7 +345,7 @@ try {
|
||||
);
|
||||
}
|
||||
}
|
||||
echo " ✓ all " . count($rows) . " rows have $headerCount columns matching CSV_HEADERS\n";
|
||||
echo ' ✓ all ' . count($rows) . " rows have $headerCount columns matching CSV_HEADERS\n";
|
||||
} else {
|
||||
echo " ✓ no rows to check (empty export) — header count is $headerCount\n";
|
||||
}
|
||||
@@ -362,7 +362,7 @@ try {
|
||||
$searchCtrl = new SearchController($db, $rateLimit);
|
||||
$vars = $searchCtrl->handleSearch();
|
||||
plAssert(array_key_exists('coverMap', $vars), 'coverMap key present in handleSearch() return');
|
||||
plAssert(is_array($vars['coverMap']), 'coverMap is an array');
|
||||
plAssert(is_array($vars['coverMap']), 'coverMap is an array');
|
||||
$_GET = [];
|
||||
echo "\n";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user