Skip to content

Commit 537c3a4

Browse files
Improve handling of inaccessible repositories
1 parent 498ce54 commit 537c3a4

File tree

3 files changed

+41
-2
lines changed

3 files changed

+41
-2
lines changed

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ecoapm/libyear",
3-
"version": "2.2.0",
3+
"version": "2.2.1",
44
"description": "A simple measure of software dependency freshness",
55
"homepage": "https://libyear.com",
66
"readme": "README.md",

src/Calculator.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public function getDependencyInfo(string $directory, bool $verbose): array
3636
$this->progress->setTotal(count($dependencies));
3737
$this->progress->display();
3838
foreach ($dependencies as $dependency) {
39-
$this->updateDependency($dependency, $repositories, $verbose);
39+
$this->updateDependency($dependency, array_filter($repositories), $verbose);
4040
$this->progress->tick();
4141
}
4242
$this->progress->finish();

tests/CalculatorTest.php

+39
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,45 @@ public function testSkipsFillingOutMissingInfo()
9696
$this->assertNull($dependencies[1]->current_version->released);
9797
}
9898

99+
public function testSkipsBadRepositories()
100+
{
101+
//arrange
102+
$dependency = new Dependency();
103+
$dependency->name = 'vendor1/package1';
104+
$dependency->current_version->version_number = '1.2.3';
105+
$composer = Mockery::mock(ComposerFile::class, [
106+
'getRepositories' => ['repo1', 'repo2'],
107+
'getDependencies' => [$dependency]
108+
]);
109+
110+
$api = Mockery::mock(RepositoryAPI::class, [
111+
'getPackageInfo' => [
112+
['version' => '1.2.4', 'time' => '2018-07-01']
113+
]
114+
]);
115+
$repo1 = null;
116+
$repo2 = new Repository('', null);
117+
$api->shouldReceive('getInfo')->andReturn(
118+
$repo1,
119+
$repo2
120+
);
121+
122+
$progress = Mockery::mock(Progress::class, [
123+
'setTotal' => null,
124+
'display' => null,
125+
'tick' => null,
126+
'finish' => null
127+
]);
128+
$calculator = new Calculator($composer, $api, $progress);
129+
130+
//act
131+
$calculator->getDependencyInfo('.', false);
132+
133+
//assert
134+
$api->shouldNotHaveReceived('getPackageInfo', ['vendor1/package1', $repo1, false]);
135+
$api->shouldHaveReceived('getPackageInfo', ['vendor1/package1', $repo2, false]);
136+
}
137+
99138
public function testSkipsFillingOutMissingVersions()
100139
{
101140
//arrange

0 commit comments

Comments
 (0)