livewire: Volt entfernt — Komponenten als Livewire-4-Single-File-Components, Route::livewire(), Livewire::test(); livewire/volt deinstalliert

- 83 Komponenten: Livewire\Volt\Component → Livewire\Component
- 73 Routen (admin, auth, customer): Volt::route() → Route::livewire()
- 88 Testdateien: Volt::test/actingAs → Livewire::test/actingAs
- VoltServiceProvider gelöscht; composer remove livewire/volt
- config/livewire.php auf v4-Schlüssel (component_layout, component_placeholder,
  component_locations, make_command: SFC ohne ⚡). Der alte Schlüssel layout war
  wirkungslos; alle gerouteten Komponenten setzen ihr Layout selbst.
- CLAUDE.md, AGENTS.md, boost.json, .cursorrules, Skill volt-development
- Roadmap: erledigt; Larastan erfasst SFCs weiterhin nicht (Blade-Dateien)

Suite 2.325 grün, einer übersprungen; Larastan und Pint ohne Meldung;
route:cache und view:cache laufen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-10-06 13:59:36 +00:00
parent 5782297dca
commit 2cde7284a1
186 changed files with 889 additions and 1075 deletions

View file

@ -15,7 +15,7 @@ use Database\Seeders\RolesAndPermissionsSeeder;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Queue;
use Illuminate\Support\Facades\Storage;
use Livewire\Volt\Volt as LivewireVolt;
use Livewire\Livewire;
use Tests\TestCase;
/**
@ -166,7 +166,7 @@ test('the create editor requires the ai declaration only when submitting for rev
$this->actingAs($customer);
$component = LivewireVolt::test('customer.press-releases.create')
$component = Livewire::test('customer.press-releases.create')
->set('categoryId', $category->id)
->set('title', 'Ein gültiger Titel für die PM')
->set('text', str_repeat('Aussagekräftiger Fließtext. ', 5));
@ -195,7 +195,7 @@ test('submitting from the create editor persists the declaration and the audit e
$this->actingAs($customer);
LivewireVolt::test('customer.press-releases.create')
Livewire::test('customer.press-releases.create')
->set('categoryId', $category->id)
->set('title', 'Ein gültiger Titel für die PM')
->set('text', str_repeat('Aussagekräftiger Fließtext. ', 5))
@ -230,13 +230,13 @@ test('submitting from the detail page validates and persists the declaration', f
$this->actingAs($customer);
LivewireVolt::test('customer.press-releases.show', ['id' => $pr->id])
Livewire::test('customer.press-releases.show', ['id' => $pr->id])
->call('submitForReview')
->assertHasErrors(['aiTextDeclaration', 'aiDeclarationConfirmed']);
expect($pr->fresh()->status)->toBe(PressReleaseStatus::Draft);
LivewireVolt::test('customer.press-releases.show', ['id' => $pr->id])
Livewire::test('customer.press-releases.show', ['id' => $pr->id])
->set('aiTextDeclaration', AiTextDeclaration::Assisted->value)
->set('aiDeclarationConfirmed', true)
->call('submitForReview')
@ -263,7 +263,7 @@ test('the submit modal renders the declaration options and the binding confirmat
$this->actingAs($customer);
LivewireVolt::test('customer.press-releases.show', ['id' => $pr->id])
Livewire::test('customer.press-releases.show', ['id' => $pr->id])
->assertSee('KI-Kennzeichnung')
->assertSee('Ohne generative KI erstellt – oder KI nur als Formulierungshilfe, mit anschließender menschlicher Überarbeitung und Verantwortung.')
->assertSee('Ganz oder überwiegend mit generativer KI erstellt.')
@ -286,7 +286,7 @@ test('image uploads require the per-image ai declaration', function () {
Storage::fake('local');
$this->actingAs($customer);
LivewireVolt::test('components.press-release-images-manager', ['pressReleaseId' => $pr->id])
Livewire::test('components.press-release-images-manager', ['pressReleaseId' => $pr->id])
->set('newImage', UploadedFile::fake()->image('foto.jpg', 1200, 800))
->set('newCopyright', 'Foto: Jane Doe')
->set('newAuthor', 'Jane Doe')