@@ -104,6 +104,9 @@ describe('SettingsView - Sound Settings', () => {
104104 name : / E n a b l e s o u n d e f f e c t s / i
105105 } )
106106 expect ( soundCheckbox ) . not . toBeChecked ( )
107+
108+ // Volume slider should not be visible when sound is disabled
109+ expect ( screen . queryByRole ( 'slider' ) ) . not . toBeInTheDocument ( )
107110 } )
108111
109112 it ( 'toggles sound setting and sends message to VSCode' , ( ) => {
@@ -128,6 +131,50 @@ describe('SettingsView - Sound Settings', () => {
128131 } )
129132 )
130133 } )
134+
135+ it ( 'shows volume slider when sound is enabled' , ( ) => {
136+ renderSettingsView ( )
137+
138+ // Enable sound
139+ const soundCheckbox = screen . getByRole ( 'checkbox' , {
140+ name : / E n a b l e s o u n d e f f e c t s / i
141+ } )
142+ fireEvent . click ( soundCheckbox )
143+
144+ // Volume slider should be visible
145+ const volumeSlider = screen . getByRole ( 'slider' )
146+ expect ( volumeSlider ) . toBeInTheDocument ( )
147+ expect ( volumeSlider ) . toHaveValue ( '0.5' ) // Default value
148+ } )
149+
150+ it ( 'updates volume and sends message to VSCode when slider changes' , ( ) => {
151+ renderSettingsView ( )
152+
153+ // Enable sound
154+ const soundCheckbox = screen . getByRole ( 'checkbox' , {
155+ name : / E n a b l e s o u n d e f f e c t s / i
156+ } )
157+ fireEvent . click ( soundCheckbox )
158+
159+ // Change volume
160+ const volumeSlider = screen . getByRole ( 'slider' )
161+ fireEvent . change ( volumeSlider , { target : { value : '0.75' } } )
162+
163+ // Verify volume display updates
164+ expect ( screen . getByText ( '75%' ) ) . toBeInTheDocument ( )
165+
166+ // Click Done to save settings
167+ const doneButton = screen . getByText ( 'Done' )
168+ fireEvent . click ( doneButton )
169+
170+ // Verify message sent to VSCode
171+ expect ( vscode . postMessage ) . toHaveBeenCalledWith (
172+ expect . objectContaining ( {
173+ type : 'soundVolume' ,
174+ value : 0.75
175+ } )
176+ )
177+ } )
131178} )
132179
133180describe ( 'SettingsView - Allowed Commands' , ( ) => {
0 commit comments