Author: Shivam Mathur (shivammathur)
Date: 2025-11-19T16:07:18+05:30

Commit: 
https://github.com/php/web-downloads/commit/97ec76963b9a29a95618e85f1b53df2d0e794cbf
Raw diff: 
https://github.com/php/web-downloads/commit/97ec76963b9a29a95618e85f1b53df2d0e794cbf.diff

Fix tests for series directory condition change

Changed paths:
  M  tests/Console/Command/SeriesDeleteCommandTest.php
  M  tests/Console/Command/SeriesInitCommandTest.php
  M  tests/Console/Command/SeriesStabilityCommandTest.php
  M  tests/Console/Command/SeriesUpdateCommandTest.php
  M  tests/Http/Controllers/SeriesUpdateControllerTest.php


Diff:

diff --git a/tests/Console/Command/SeriesDeleteCommandTest.php 
b/tests/Console/Command/SeriesDeleteCommandTest.php
index 9929b8b..b3dbd2b 100644
--- a/tests/Console/Command/SeriesDeleteCommandTest.php
+++ b/tests/Console/Command/SeriesDeleteCommandTest.php
@@ -38,15 +38,18 @@ public static function versionProvider(): array
         ];
     }
 
-    public function testReturnsSuccessWhenNoSeriesDir(): void
+    public function testFailsWhenNoSeriesDir(): void
     {
         $command = new SeriesDeleteCommand();
         $command->setOption('base-directory', $this->baseDirectory);
         $command->setOption('builds-directory', $this->buildsDirectory);
 
+        ob_start();
         $result = $command->handle();
+        $output = trim(ob_get_clean());
 
-        $this->assertSame(0, $result, 'Should return success when there is no 
builds/series directory.');
+        $this->assertSame(1, $result, 'Should fail when there is no 
builds/series directory.');
+        $this->assertSame('Series directory does not exist', $output);
     }
 
     public function testMissingBaseDirectory(): void
diff --git a/tests/Console/Command/SeriesInitCommandTest.php 
b/tests/Console/Command/SeriesInitCommandTest.php
index ba16752..24b7d59 100644
--- a/tests/Console/Command/SeriesInitCommandTest.php
+++ b/tests/Console/Command/SeriesInitCommandTest.php
@@ -38,15 +38,18 @@ public static function caseProvider(): array
         ];
     }
 
-    public function testReturnsSuccessWhenNoSeriesDir(): void
+    public function testFailsWhenNoSeriesDir(): void
     {
         $command = new SeriesInitCommand();
         $command->setOption('base-directory', $this->baseDirectory);
         $command->setOption('builds-directory', $this->buildsDirectory);
 
+        ob_start();
         $result = $command->handle();
+        $output = trim(ob_get_clean());
 
-        $this->assertSame(0, $result, 'Should return success when there is no 
builds/series directory.');
+        $this->assertSame(1, $result, 'Should fail when there is no 
builds/series directory.');
+        $this->assertSame('Series directory does not exist', $output);
     }
 
     public function testMissingBaseDirectory(): void
diff --git a/tests/Console/Command/SeriesStabilityCommandTest.php 
b/tests/Console/Command/SeriesStabilityCommandTest.php
index b3364a0..0203f29 100644
--- a/tests/Console/Command/SeriesStabilityCommandTest.php
+++ b/tests/Console/Command/SeriesStabilityCommandTest.php
@@ -38,15 +38,18 @@ public static function versionProvider(): array
         ];
     }
 
-    public function testReturnsSuccessWhenNoSeriesDir(): void
+    public function testFailsWhenNoSeriesDir(): void
     {
         $command = new SeriesStabilityCommand();
         $command->setOption('base-directory', $this->baseDirectory);
         $command->setOption('builds-directory', $this->buildsDirectory);
 
+        ob_start();
         $result = $command->handle();
+        $output = trim(ob_get_clean());
 
-        $this->assertSame(0, $result);
+        $this->assertSame(1, $result);
+        $this->assertSame('Series directory does not exist', $output);
     }
 
     public function testMissingBaseDirectory(): void
diff --git a/tests/Console/Command/SeriesUpdateCommandTest.php 
b/tests/Console/Command/SeriesUpdateCommandTest.php
index 30bafca..c419fde 100644
--- a/tests/Console/Command/SeriesUpdateCommandTest.php
+++ b/tests/Console/Command/SeriesUpdateCommandTest.php
@@ -55,15 +55,18 @@ public function testMissingBuildsDirectory(): void
         $this->assertSame('Build directory is required', $output);
     }
 
-    public function testReturnsSuccessWhenNoSeriesDirectory(): void
+    public function testFailsWhenNoSeriesDirectory(): void
     {
         $command = new SeriesUpdateCommand();
         $command->setOption('base-directory', $this->baseDirectory);
         $command->setOption('builds-directory', $this->buildsDirectory);
 
+        ob_start();
         $result = $command->handle();
+        $output = trim(ob_get_clean());
 
-        $this->assertSame(0, $result);
+        $this->assertSame(1, $result);
+        $this->assertSame('Series directory does not exist', $output);
     }
 
     public function testUpdatesExistingLibraryEntry(): void
diff --git a/tests/Http/Controllers/SeriesUpdateControllerTest.php 
b/tests/Http/Controllers/SeriesUpdateControllerTest.php
index 56e6672..ff252b7 100644
--- a/tests/Http/Controllers/SeriesUpdateControllerTest.php
+++ b/tests/Http/Controllers/SeriesUpdateControllerTest.php
@@ -75,14 +75,36 @@ public function testEnqueuesDeleteTaskWithoutPackage(): void
         $this->assertSame($payload, $taskData);
     }
 
-    public function testRejectsInvalidPackageName(): void
+    public function testRejectsInvalidLibraryName(): void
+    {
+        $payload = [
+            'php_version' => '8.0',
+            'vs_version' => 'vs16',
+            'stability' => 'stable',
+            'library' => 'open ssl',
+            'ref' => '1.2.3',
+        ];
+
+        $inputPath = $this->createInputFile($payload);
+        $controller = new SeriesUpdateController($inputPath);
+
+        ob_start();
+        $controller->handle();
+        $output = ob_get_clean();
+        unlink($inputPath);
+
+        $this->assertStringContainsString('The library field must match the 
pattern /^[a-zA-Z0-9_-]+$/.', $output);
+        $this->assertEmpty(glob($this->buildsDirectory . 
'/series/series-update-*.json'));
+    }
+
+    public function testRejectsInvalidRefFormat(): void
     {
         $payload = [
             'php_version' => '8.0',
             'vs_version' => 'vs16',
             'stability' => 'stable',
             'library' => 'openssl',
-            // ref missing entirely
+            'ref' => 'v1/2',
         ];
 
         $inputPath = $this->createInputFile($payload);
@@ -93,7 +115,7 @@ public function testRejectsInvalidPackageName(): void
         $output = ob_get_clean();
         unlink($inputPath);
 
-        $this->assertStringContainsString('The ref field must be a string.', 
$output);
+        $this->assertStringContainsString('The ref field must match the 
pattern /^([a-zA-Z0-9\.-]+)?$/.', $output);
         $this->assertEmpty(glob($this->buildsDirectory . 
'/series/series-update-*.json'));
     }
 

Reply via email to