diff --git a/src/Calculator.php b/src/Calculator.php index 029b34a..e871164 100644 --- a/src/Calculator.php +++ b/src/Calculator.php @@ -31,6 +31,10 @@ public function getDependencyInfo(string $directory): array } $sorted_versions = self::sortVersions($package_info); + if (empty($sorted_versions)) { + continue; + } + $dependency->current_version->released = $this->findReleaseDate($sorted_versions, $package_info, $dependency->current_version->version_number); $dependency->newest_version->version_number = $sorted_versions[0]; $dependency->newest_version->released = self::getReleaseDate($package_info, $sorted_versions[0]); diff --git a/src/Version.php b/src/Version.php index 2862e3a..9b1cc35 100644 --- a/src/Version.php +++ b/src/Version.php @@ -7,5 +7,5 @@ class Version { public string $version_number; - public ?DateTime $released; + public ?DateTime $released = null; } diff --git a/tests/CalculatorTest.php b/tests/CalculatorTest.php index e3b4032..e93a6a2 100644 --- a/tests/CalculatorTest.php +++ b/tests/CalculatorTest.php @@ -80,6 +80,35 @@ public function testSkipsFillingOutMissingInfo() $this->assertEquals('1.2.3', $dependencies[0]->current_version->version_number); $this->assertNull($dependencies[0]->current_version->released); $this->assertEquals('2.3.4', $dependencies[1]->current_version->version_number); + $this->assertNull($dependencies[1]->current_version->released); + } + + public function testSkipsFillingOutMissingVersions() + { + //arrange + $dependency = new Dependency(); + $dependency->name = 'vendor1/package1'; + $dependency->current_version->version_number = '1.2.3'; + $composer = Mockery::mock(ComposerFile::class, [ + 'getDependencies' => [$dependency] + ]); + + $packagist = Mockery::mock(PackagistAPI::class); + $packagist->shouldReceive('getPackageInfo')->andReturn( + [ + 'package' => [ + 'versions' => [] + ] + ] + ); + $calculator = new Calculator($composer, $packagist); + + //act + $dependencies = $calculator->getDependencyInfo('.'); + + //assert + $this->assertEquals('1.2.3', $dependencies[0]->current_version->version_number); + $this->assertNull($dependencies[0]->current_version->released); } public function testCanGetTotalLibyearsBehind()