Commit 383750eb authored by Anthony Gautreau's avatar Anthony Gautreau
Browse files

Pegase, configuration : la valeur 0 n'est plus retirée des listes (codes exclus, années, langues)

parent 164bd143
Loading
Loading
Loading
Loading
+3 −1
Changes for api/src/Pegase/Configuration.php: 3 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -60,7 +60,9 @@ final class Configuration
     */
    public static function liste(string $valeur): array
    {
        return array_values(array_filter(array_map('trim', explode(',', $valeur))));
        $valeurs = array_map('trim', explode(',', $valeur));

        return array_values(array_filter($valeurs, static fn (string $v): bool => '' !== $v));
    }

    /**
+14 −0
Changes for api/tests/Pegase/ConfigurationTest.php: 14 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -32,6 +32,11 @@ class ConfigurationTest extends TestCase
    {
        $this->assertSame(['PEGASE_ANNEES_UNIVERSITAIRES'], (new Configuration('', '', '09-01:01-31', '01-15:06-30'))->erreurs());

        $erreurs = (new Configuration('0', '0', '09-01:01-31', '01-15:06-30'))->erreurs();
        $this->assertCount(2, $erreurs);
        $this->assertStringStartsWith('PEGASE_ANNEES_UNIVERSITAIRES : « 0 »', $erreurs[0]);
        $this->assertStringStartsWith('PEGASE_LANGUES : « 0 »', $erreurs[1]);

        $erreurs = (new Configuration('2026-2028,2026', 'ECA', '09-01', '02-30:06-30'))->erreurs();

        $this->assertCount(5, $erreurs);
@@ -40,6 +45,15 @@ class ConfigurationTest extends TestCase
        $this->assertStringStartsWith('PEGASE_SEMESTRE_2 : « 02-30:06-30 »', $erreurs[4]);
    }

    /**
     * Vérifie le découpage d'une valeur en liste : espaces et valeurs vides retirés, « 0 » conservé.
     */
    public function testListe(): void
    {
        $this->assertSame(['A1', '0', 'B2'], Configuration::liste(' A1, ,0,,B2 ,'));
        $this->assertSame([], Configuration::liste(''));
    }

    /**
     * Vérifie les dates d'instance : semestre 1 commençant la première année, dates suivantes à leur prochaine occurrence.
     */