diff --git a/resources/views/livewire/customer/profile.blade.php b/resources/views/livewire/customer/profile.blade.php index 5e7da065..b4437c4e 100644 --- a/resources/views/livewire/customer/profile.blade.php +++ b/resources/views/livewire/customer/profile.blade.php @@ -361,7 +361,7 @@ new #[Layout('components.layouts.app'), Title('Mein Profil')] class extends Comp
{{-- ============== 1) PERSÖNLICHE DATEN + KONTO ============== --}}
-
+
{{ __('Persönliche Daten') }}
@@ -389,9 +389,14 @@ new #[Layout('components.layouts.app'), Title('Mein Profil')] class extends Comp
+
+ + {{ __('Speichern') }} + +
-
+
{{ __('Konto & Sicherheit') }}
@@ -407,6 +412,11 @@ new #[Layout('components.layouts.app'), Title('Mein Profil')] class extends Comp +
+ + {{ __('Speichern') }} + +
diff --git a/tests/Feature/CustomerProfileSecurityTest.php b/tests/Feature/CustomerProfileSecurityTest.php index 5fad298c..7f68c1f0 100644 --- a/tests/Feature/CustomerProfileSecurityTest.php +++ b/tests/Feature/CustomerProfileSecurityTest.php @@ -84,6 +84,20 @@ test('an incomplete billing address reports each missing field exactly once', fu ->assertHasErrors(['billingLastName', 'billingAddress1', 'billingPostalCode', 'billingCity']); }); +test('every profile panel offers a save button', function () { + /** @var TestCase $this */ + $customer = User::factory()->create(['is_active' => true]); + + $this->actingAs($customer); + + // 6 Panels (Persönliche Daten, Konto & Sicherheit, Rechnungsadresse, + // Agentur-Angaben, E-Mail-Benachrichtigungen, Einstellungen) — jedes mit + // eigenem Submit-Button für dasselbe Formular. + $html = LivewireVolt::test('customer.profile')->html(); + + expect(substr_count($html, 'type="submit"'))->toBe(6); +}); + test('a malformed vat id blocks saving with a field error', function () { /** @var TestCase $this */ $customer = User::factory()->create(['is_active' => true]);