Skip to content

Commit 4feae22

Browse files
Merge pull request #81 from robbieaverill/bugfix/nullable-description
Fix bug where packages with a null description would cause a return type error
2 parents 8fd1411 + c676ce0 commit 4feae22

File tree

4 files changed

+29
-1
lines changed

4 files changed

+29
-1
lines changed

.editorconfig

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
insert_final_newline = true
7+
indent_style = space
8+
indent_size = 4
9+
trim_trailing_whitespace = true
10+
11+
[*.md]
12+
trim_trailing_whitespace = false
13+
14+
[*.{yml,json}]
15+
indent_size = 2
16+
17+
[composer.json]
18+
indent_size = 4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"package":{"name":"sylius\/sylius","description":null,"time":"2013-01-18T20:48:01+00:00","maintainers":[{"name":"pjedrzejewski","email":"[email protected]"}],"versions":{"dev-master":{"name":"sylius\/sylius","description":"Modern ecommerce for Symfony2","keywords":[],"homepage":"http:\/\/sylius.org","version":"dev-master","version_normalized":"9999999-dev","license":["MIT"],"authors":[{"name":"Pawe\u0142 J\u0119drzejewski","email":"[email protected]","homepage":"http:\/\/pjedrzejewski.com"},{"name":"Sylius project","homepage":"http:\/\/sylius.org"},{"name":"Community contributions","homepage":"http:\/\/github.com\/Sylius\/Sylius\/contributors"}],"source":{"type":"git","url":"https:\/\/github.com\/Sylius\/Sylius.git","reference":"1f0e49a6d4e9b6ab3a84cbd962f772c707461640"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/Sylius\/Sylius\/zipball\/1f0e49a6d4e9b6ab3a84cbd962f772c707461640","reference":"1f0e49a6d4e9b6ab3a84cbd962f772c707461640","shasum":""},"type":"library","time":"2013-03-17T12:27:32+00:00","autoload":{"psr-0":{"Context":"features\/"}},"extra":{"symfony-app-dir":"sylius","symfony-web-dir":"web"},"require":{"php":">=5.3.3","doctrine\/orm":">=2.2.3,<2.4-dev","doctrine\/doctrine-fixtures-bundle":"*","twig\/extensions":"1.0.*","symfony\/assetic-bundle":"2.1.*","sylius\/core-bundle":"0.1.*","sylius\/web-bundle":"0.1.*","symfony\/symfony":">=2.2,<2.3-dev","doctrine\/doctrine-bundle":"1.2.*","symfony\/swiftmailer-bundle":"2.2.*","symfony\/monolog-bundle":"2.2.*","sensio\/distribution-bundle":"2.2.*","mathiasverraes\/money":"dev-master@dev"},"require-dev":{"behat\/behat":"2.4.*","behat\/symfony2-extension":"*","behat\/mink-extension":"*","behat\/mink-browserkit-driver":"*","phpspec\/phpspec2":"dev-develop","behat\/mink-selenium2-driver":"*"}},"dev-checkout":{"name":"sylius\/sylius","description":"Modern ecommerce for Symfony2","keywords":[],"homepage":"","version":"dev-checkout","version_normalized":"dev-checkout","license":["MIT"],"authors":[{"name":"Pawe\u0142 J\u0119drzejewski","email":"[email protected]","homepage":"http:\/\/pjedrzejewski.com"},{"name":"Sylius project","homepage":"http:\/\/sylius.org"},{"name":"Community contributions","homepage":"http:\/\/github.com\/Sylius\/Sylius\/contributors"}],"source":{"type":"git","url":"https:\/\/github.com\/Sylius\/Sylius.git","reference":"cb0a489db41707d5df078f1f35e028e04ffd9e8e"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/Sylius\/Sylius\/zipball\/cb0a489db41707d5df078f1f35e028e04ffd9e8e","reference":"cb0a489db41707d5df078f1f35e028e04ffd9e8e","shasum":""},"type":"library","time":"2013-03-01T22:22:37+00:00","autoload":{"psr-0":{"Context":"features\/"}},"extra":{"symfony-app-dir":"sylius","symfony-web-dir":"web"},"require":{"php":">=5.3.3","symfony\/symfony":">=2.2,<2.3-dev","doctrine\/orm":">=2.2.3,<2.4-dev","doctrine\/doctrine-bundle":"1.2.*","doctrine\/doctrine-fixtures-bundle":"*","twig\/extensions":"1.0.*","symfony\/assetic-bundle":"2.1.*","symfony\/swiftmailer-bundle":"2.2.*","symfony\/monolog-bundle":"2.2.*","sensio\/distribution-bundle":"2.2.*","sylius\/core-bundle":"0.1.*","sylius\/web-bundle":"0.1.*","mathiasverraes\/money":"dev-master@dev"},"require-dev":{"behat\/behat":"2.4.*","behat\/symfony2-extension":"*","behat\/mink-extension":"*","behat\/mink-browserkit-driver":"*","phpspec\/phpspec2":"dev-develop","behat\/mink-selenium2-driver":"*"}}},"type":"library","repository":"https:\/\/github.com\/Sylius\/Sylius.git","downloads":{"total":41,"monthly":30,"daily":0},"favers":0}}

spec/Packagist/Api/Result/FactorySpec.php

+8-1
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,17 @@ function it_creates_packages_with_dependents()
8282
function it_creates_packages_with_null_source()
8383
{
8484
$data = json_decode(file_get_contents('spec/Packagist/Api/Fixture/get_null_source.json'), true);
85-
8685
$this->create($data)->shouldHaveType('Packagist\Api\Result\Package');
8786
}
8887

88+
function it_creates_packages_with_null_description()
89+
{
90+
$data = json_decode(file_get_contents('spec/Packagist/Api/Fixture/get_null_description.json'), true);
91+
$result = $this->create($data);
92+
$result->shouldHaveType('Packagist\Api\Result\Package');
93+
$result->getDescription()->shouldBe('');
94+
}
95+
8996
public function getMatchers(): array
9097
{
9198
return array(

src/Packagist/Api/Result/Factory.php

+2
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ public function createPackageResults(array $package)
8181
);
8282
}
8383

84+
$package['description'] = (string) $package['description'] ?? '';
85+
8486
foreach ($package['versions'] as $branch => $version) {
8587
if (isset($version['authors']) && $version['authors']) {
8688
foreach ($version['authors'] as $key => $author) {

0 commit comments

Comments
 (0)