[web-downloads] main: Fix tests for series directory condition change

From: Date: Wed, 19 Nov 2025 10:37:28 +0000
Subject: [web-downloads] main: Fix tests for series directory condition change
Groups: php.webmaster 
Request: Send a blank email to php-webmaster+get-33369@lists.php.net to get a copy of this message
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')); }

« previous php.webmaster (#33369) next »