Skip to content

Commit

Permalink
Improve handling of inaccessible repositories
Browse files Browse the repository at this point in the history
  • Loading branch information
SteveDesmond-ca committed Nov 18, 2022
1 parent 498ce54 commit 537c3a4
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 2 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ecoapm/libyear",
"version": "2.2.0",
"version": "2.2.1",
"description": "A simple measure of software dependency freshness",
"homepage": "https://libyear.com",
"readme": "README.md",
Expand Down
2 changes: 1 addition & 1 deletion src/Calculator.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public function getDependencyInfo(string $directory, bool $verbose): array
$this->progress->setTotal(count($dependencies));
$this->progress->display();
foreach ($dependencies as $dependency) {
$this->updateDependency($dependency, $repositories, $verbose);
$this->updateDependency($dependency, array_filter($repositories), $verbose);
$this->progress->tick();
}
$this->progress->finish();
Expand Down
39 changes: 39 additions & 0 deletions tests/CalculatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,45 @@ public function testSkipsFillingOutMissingInfo()
$this->assertNull($dependencies[1]->current_version->released);
}

public function testSkipsBadRepositories()
{
//arrange
$dependency = new Dependency();
$dependency->name = 'vendor1/package1';
$dependency->current_version->version_number = '1.2.3';
$composer = Mockery::mock(ComposerFile::class, [
'getRepositories' => ['repo1', 'repo2'],
'getDependencies' => [$dependency]
]);

$api = Mockery::mock(RepositoryAPI::class, [
'getPackageInfo' => [
['version' => '1.2.4', 'time' => '2018-07-01']
]
]);
$repo1 = null;
$repo2 = new Repository('', null);
$api->shouldReceive('getInfo')->andReturn(
$repo1,
$repo2
);

$progress = Mockery::mock(Progress::class, [
'setTotal' => null,
'display' => null,
'tick' => null,
'finish' => null
]);
$calculator = new Calculator($composer, $api, $progress);

//act
$calculator->getDependencyInfo('.', false);

//assert
$api->shouldNotHaveReceived('getPackageInfo', ['vendor1/package1', $repo1, false]);
$api->shouldHaveReceived('getPackageInfo', ['vendor1/package1', $repo2, false]);
}

public function testSkipsFillingOutMissingVersions()
{
//arrange
Expand Down

0 comments on commit 537c3a4

Please sign in to comment.