Skip to content

Commit 8197b6f

Browse files
calebdwGeniJaho
andauthored
feat: add composer-triggered set for version sets (#362)
Co-authored-by: Geni Jaho <[email protected]>
1 parent 2d37fc6 commit 8197b6f

File tree

2 files changed

+28
-34
lines changed

2 files changed

+28
-34
lines changed

src/Set/LaravelSetProvider.php

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Rector\Set\Contract\SetInterface;
66
use Rector\Set\Contract\SetProviderInterface;
7+
use Rector\Set\ValueObject\ComposerTriggeredSet;
78
use Rector\Set\ValueObject\Set;
89
use RectorLaravel\Set\Packages\Livewire\LivewireSetList;
910

@@ -95,36 +96,39 @@ public function provide(): array
9596
'Upgrade Legacy Factories to Modern Factories',
9697
LaravelSetList::LARAVEL_LEGACY_FACTORIES_TO_CLASSES,
9798
),
98-
new Set(
99+
new ComposerTriggeredSet(
99100
self::GROUP_NAME,
100-
'Livewire 3.0',
101+
'livewire/livewire',
102+
'3.0',
101103
LivewireSetList::LIVEWIRE_30,
102104
),
103105
...$this->getLaravelVersions(),
104106
];
105107
}
106108

107109
/**
108-
* @return Set[]
110+
* @return ComposerTriggeredSet[]
109111
*/
110112
private function getLaravelVersions(): array
111113
{
112114
$versions = [];
113115

114116
$totalPostFive = count(self::LARAVEL_POST_FIVE);
115117
foreach (self::LARAVEL_POST_FIVE as $index => $version) {
116-
$versions[] = new Set(
118+
$versions[] = new ComposerTriggeredSet(
117119
self::GROUP_NAME,
118-
'Laravel Framework ' . ($totalPostFive - $index + 5) . '.0',
120+
'laravel/framework',
121+
($totalPostFive - $index + 5) . '.0',
119122
$version,
120123
);
121124
}
122125

123126
$totalFive = count(self::LARAVEL_FIVE);
124127
foreach (self::LARAVEL_FIVE as $index => $version) {
125-
$versions[] = new Set(
128+
$versions[] = new ComposerTriggeredSet(
126129
self::GROUP_NAME,
127-
'Laravel Framework 5.' . ($totalFive - $index - 1),
130+
'laravel/framework',
131+
'5.' . ($totalFive - $index - 1),
128132
$version,
129133
);
130134
}

tests/Sets/LaravelSetProviderTest.php

Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,22 @@
1111
final class LaravelSetProviderTest extends TestCase
1212
{
1313
private const array LARAVEL_VERSION_SETS = [
14-
'Laravel Framework 12.0' => LaravelSetList::LARAVEL_120,
15-
'Laravel Framework 11.0' => LaravelSetList::LARAVEL_110,
16-
'Laravel Framework 10.0' => LaravelSetList::LARAVEL_100,
17-
'Laravel Framework 9.0' => LaravelSetList::LARAVEL_90,
18-
'Laravel Framework 8.0' => LaravelSetList::LARAVEL_80,
19-
'Laravel Framework 7.0' => LaravelSetList::LARAVEL_70,
20-
'Laravel Framework 6.0' => LaravelSetList::LARAVEL_60,
21-
'Laravel Framework 5.8' => LaravelSetList::LARAVEL_58,
22-
'Laravel Framework 5.7' => LaravelSetList::LARAVEL_57,
23-
'Laravel Framework 5.6' => LaravelSetList::LARAVEL_56,
24-
'Laravel Framework 5.5' => LaravelSetList::LARAVEL_55,
25-
'Laravel Framework 5.4' => LaravelSetList::LARAVEL_54,
26-
'Laravel Framework 5.3' => LaravelSetList::LARAVEL_53,
27-
'Laravel Framework 5.2' => LaravelSetList::LARAVEL_52,
28-
'Laravel Framework 5.1' => LaravelSetList::LARAVEL_51,
29-
'Laravel Framework 5.0' => LaravelSetList::LARAVEL_50,
14+
LaravelSetList::LARAVEL_120,
15+
LaravelSetList::LARAVEL_110,
16+
LaravelSetList::LARAVEL_100,
17+
LaravelSetList::LARAVEL_90,
18+
LaravelSetList::LARAVEL_80,
19+
LaravelSetList::LARAVEL_70,
20+
LaravelSetList::LARAVEL_60,
21+
LaravelSetList::LARAVEL_58,
22+
LaravelSetList::LARAVEL_57,
23+
LaravelSetList::LARAVEL_56,
24+
LaravelSetList::LARAVEL_55,
25+
LaravelSetList::LARAVEL_54,
26+
LaravelSetList::LARAVEL_53,
27+
LaravelSetList::LARAVEL_52,
28+
LaravelSetList::LARAVEL_51,
29+
LaravelSetList::LARAVEL_50,
3030
];
3131

3232
/**
@@ -73,16 +73,6 @@ public function it_provides_all_laravel_versions(): void
7373
fn (string $filePath) => in_array($filePath, self::LARAVEL_VERSION_SETS, true),
7474
);
7575

76-
Assert::assertSame(array_values(self::LARAVEL_VERSION_SETS), array_values($filePaths));
77-
78-
$setNames = array_filter(
79-
array_map(
80-
fn (SetInterface $set) => $set->getName(),
81-
$sets
82-
),
83-
fn (string $setName) => in_array($setName, array_keys(self::LARAVEL_VERSION_SETS), true),
84-
);
85-
86-
Assert::assertSame(array_keys(self::LARAVEL_VERSION_SETS), array_values($setNames));
76+
Assert::assertSame(self::LARAVEL_VERSION_SETS, array_values($filePaths));
8777
}
8878
}

0 commit comments

Comments
 (0)