Skip to content

Commit 32a20bb

Browse files
authored
[ComposerProsessor] Fix crash on double piped version on RaiseToInstalledComposerProcessor (#23)
* [ComposerProsessor] Fix crash on double piped version on RaiseToInstalledComposerProcessor * [ComposerProsessor] Fix crash on double piped version on RaiseToInstalledComposerProcessor * Fix phpstan
1 parent 44c3464 commit 32a20bb

File tree

4 files changed

+39
-0
lines changed

4 files changed

+39
-0
lines changed

src/ComposerProcessor/RaiseToInstalledComposerProcessor.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ public function process(string $composerJsonContents): ChangedPackageVersionsRes
4646

4747
$installedVersion = $installedPackagesToVersions[$packageName];
4848

49+
// normalize pipe
50+
$packageVersion = str_replace('||', '|', $packageVersion);
51+
4952
// special case for unions
5053
if (str_contains((string) $packageVersion, '|')) {
5154
$passingVersionKeys = [];
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"require": {
3+
"illuminate/container": "^12.14 || 13.0"
4+
}
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"require": {
3+
"illuminate/container": "^12.14 | 13.0"
4+
}
5+
}

tests/ComposerProcessor/RaiseToInstalledComposerProcessor/RaiseToInstalledComposerProcessorTest.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,30 @@ public function testSkipDev(): void
4848

4949
$this->assertEmpty($changedPackageVersionsResult->getChangedPackageVersions());
5050
}
51+
52+
public function testSinglePiped(): void
53+
{
54+
$composerJsonContents = FileSystem::read(__DIR__ . '/Fixture/single-piped.json');
55+
56+
$changedPackageVersionsResult = $this->raiseToInstalledComposerProcessor->process($composerJsonContents);
57+
58+
$changedPackageVersion = $changedPackageVersionsResult->getChangedPackageVersions()[0];
59+
60+
$this->assertSame('illuminate/container', $changedPackageVersion->getPackageName());
61+
$this->assertSame('^12.14 | 13.0', $changedPackageVersion->getOldVersion());
62+
$this->assertSame('^12.18', $changedPackageVersion->getNewVersion());
63+
}
64+
65+
public function testDoublePiped(): void
66+
{
67+
$composerJsonContents = FileSystem::read(__DIR__ . '/Fixture/double-piped.json');
68+
69+
$changedPackageVersionsResult = $this->raiseToInstalledComposerProcessor->process($composerJsonContents);
70+
71+
$changedPackageVersion = $changedPackageVersionsResult->getChangedPackageVersions()[0];
72+
73+
$this->assertSame('illuminate/container', $changedPackageVersion->getPackageName());
74+
$this->assertSame('^12.14 | 13.0', $changedPackageVersion->getOldVersion());
75+
$this->assertSame('^12.18', $changedPackageVersion->getNewVersion());
76+
}
5177
}

0 commit comments

Comments
 (0)