Skip to content

Commit

Permalink
Catch when package has no tagged versions
Browse files Browse the repository at this point in the history
  • Loading branch information
SteveDesmond-ca committed Nov 12, 2021
1 parent 4c4ab04 commit 169c211
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 1 deletion.
4 changes: 4 additions & 0 deletions src/Calculator.php
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
Expand Down
2 changes: 1 addition & 1 deletion src/Version.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@
class Version
{
public string $version_number;
public ?DateTime $released;
public ?DateTime $released = null;
}
29 changes: 29 additions & 0 deletions tests/CalculatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down

0 comments on commit 169c211

Please sign in to comment.