diff --git a/resources/views/livewire/plugins/config-modal.blade.php b/resources/views/livewire/plugins/config-modal.blade.php
index 8be7f55..7ba3208 100644
--- a/resources/views/livewire/plugins/config-modal.blade.php
+++ b/resources/views/livewire/plugins/config-modal.blade.php
@@ -240,7 +240,7 @@ new class extends Component
{!! $safeDescription !!}
diff --git a/tests/Feature/Livewire/Plugins/ConfigModalTest.php b/tests/Feature/Livewire/Plugins/ConfigModalTest.php
index 517d130..b8b3384 100644
--- a/tests/Feature/Livewire/Plugins/ConfigModalTest.php
+++ b/tests/Feature/Livewire/Plugins/ConfigModalTest.php
@@ -121,3 +121,30 @@ test('config modal dispatches update event for parent warning refresh', function
->call('saveConfiguration')
->assertDispatched('config-updated');
});
+
+test('config modal saves password field values correctly', function (): void {
+ $user = User::factory()->create();
+ $this->actingAs($user);
+
+ $plugin = Plugin::create([
+ 'uuid' => Str::uuid(),
+ 'user_id' => $user->id,
+ 'name' => 'Test Plugin',
+ 'data_strategy' => 'static',
+ 'configuration_template' => [
+ 'custom_fields' => [[
+ 'keyname' => 'api_key',
+ 'field_type' => 'password',
+ 'name' => 'API Key',
+ ]],
+ ],
+ 'configuration' => [],
+ ]);
+
+ Livewire::test('plugins.config-modal', ['plugin' => $plugin])
+ ->set('configuration.api_key', 'my-secret-password-123')
+ ->call('saveConfiguration')
+ ->assertHasNoErrors();
+
+ expect($plugin->fresh()->configuration['api_key'])->toBe('my-secret-password-123');
+});