mirror of
https://github.com/pacnpal/Roo-Code.git
synced 2025-12-21 12:51:17 -05:00
Fix issue where sound effects setting wasn't working (#51)
This commit is contained in:
@@ -539,6 +539,7 @@ export class ClineProvider implements vscode.WebviewViewProvider {
|
||||
case "soundEnabled":
|
||||
const soundEnabled = message.bool ?? true
|
||||
await this.updateGlobalState("soundEnabled", soundEnabled)
|
||||
setSoundEnabled(soundEnabled) // Add this line to update the sound utility
|
||||
await this.postStateToWebview()
|
||||
break
|
||||
case "diffEnabled":
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { ClineProvider } from '../ClineProvider'
|
||||
import * as vscode from 'vscode'
|
||||
import { ExtensionMessage, ExtensionState } from '../../../shared/ExtensionMessage'
|
||||
import { setSoundEnabled } from '../../../utils/sound'
|
||||
|
||||
// Mock dependencies
|
||||
jest.mock('vscode', () => ({
|
||||
@@ -25,6 +26,11 @@ jest.mock('vscode', () => ({
|
||||
}
|
||||
}))
|
||||
|
||||
// Mock sound utility
|
||||
jest.mock('../../../utils/sound', () => ({
|
||||
setSoundEnabled: jest.fn()
|
||||
}))
|
||||
|
||||
// Mock ESM modules
|
||||
jest.mock('p-wait-for', () => ({
|
||||
__esModule: true,
|
||||
@@ -233,4 +239,23 @@ describe('ClineProvider', () => {
|
||||
expect(state).toHaveProperty('soundEnabled')
|
||||
expect(state).toHaveProperty('diffEnabled')
|
||||
})
|
||||
|
||||
test('updates sound utility when sound setting changes', async () => {
|
||||
provider.resolveWebviewView(mockWebviewView)
|
||||
|
||||
// Get the message handler from onDidReceiveMessage
|
||||
const messageHandler = (mockWebviewView.webview.onDidReceiveMessage as jest.Mock).mock.calls[0][0]
|
||||
|
||||
// Simulate setting sound to enabled
|
||||
await messageHandler({ type: 'soundEnabled', bool: true })
|
||||
expect(setSoundEnabled).toHaveBeenCalledWith(true)
|
||||
expect(mockContext.globalState.update).toHaveBeenCalledWith('soundEnabled', true)
|
||||
expect(mockPostMessage).toHaveBeenCalled()
|
||||
|
||||
// Simulate setting sound to disabled
|
||||
await messageHandler({ type: 'soundEnabled', bool: false })
|
||||
expect(setSoundEnabled).toHaveBeenCalledWith(false)
|
||||
expect(mockContext.globalState.update).toHaveBeenCalledWith('soundEnabled', false)
|
||||
expect(mockPostMessage).toHaveBeenCalled()
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user