Skip to content

Commit 5e771cf

Browse files
committed
add volume slider tests
1 parent 1adc36a commit 5e771cf

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

webview-ui/src/components/settings/__tests__/SettingsView.test.tsx

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,9 @@ describe('SettingsView - Sound Settings', () => {
104104
name: /Enable sound effects/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: /Enable sound effects/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: /Enable sound effects/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

133180
describe('SettingsView - Allowed Commands', () => {

0 commit comments

Comments
 (0)