49 lines
1.5 KiB
Plaintext
49 lines
1.5 KiB
Plaintext
# Task 5: Default Arrangement Selection in ProFileGenerator
|
|
## QA Scenario: 'normal' arrangement auto-selected
|
|
|
|
### Test Case: testGenerateSelectsNormalArrangementWhenPresent
|
|
- Generates a song with arrangements ['other', 'normal']
|
|
- Writes to .pro file
|
|
- Reads back and verifies 'normal' is selected (not 'other')
|
|
|
|
### Result: PASS
|
|
- Song generated successfully
|
|
- File written and read back
|
|
- Selected arrangement is 'normal' (not 'other')
|
|
- Case-insensitive matching works correctly
|
|
|
|
### Implementation Details
|
|
Modified ProFileGenerator.php lines 114-127:
|
|
```php
|
|
$presentation->setArrangements($arrangementProtos);
|
|
|
|
$selectedArrangement = null;
|
|
foreach ($arrangementProtos as $arr) {
|
|
if (strtolower($arr->getName()) === 'normal') {
|
|
$selectedArrangement = $arr;
|
|
break;
|
|
}
|
|
}
|
|
$selectedArrangement = $selectedArrangement ?? ($arrangementProtos[0] ?? null);
|
|
if ($selectedArrangement) {
|
|
$presentation->setSelectedArrangement($selectedArrangement->getUuid());
|
|
}
|
|
```
|
|
|
|
### Test Results
|
|
All 12 ProFileGenerator tests pass:
|
|
- testGenerateCreatesValidSong
|
|
- testGenerateWithMultipleGroupsAndArrangements
|
|
- testGenerateWithTranslation
|
|
- testGenerateWithCcliMetadata
|
|
- testRoundTripFromTestPro
|
|
- testGenerateAndWriteCreatesFile
|
|
- testGenerateWithMacro
|
|
- testGenerateMediaSlide
|
|
- testGenerateMediaSlideWithLabelAndMacro
|
|
- testGenerateAttributesAreDisabled
|
|
- testGenerateSelectsNormalArrangementWhenPresent ✓ NEW
|
|
- testGenerateFallsBackToFirstArrangementWhenNoNormal ✓ NEW
|
|
|
|
Total: 12 tests, 82 assertions, 0 failures
|