Fix issue where sound effects setting wasn't working (#51)

This commit is contained in:
Matt Rubens
2024-12-07 22:54:38 -05:00
committed by GitHub
parent e180205327
commit c78216af30
6 changed files with 34 additions and 4 deletions

View File

@@ -1,5 +1,9 @@
# Roo Cline Changelog
## [2.1.13]
- Fix https://github.com/RooVetGit/Roo-Cline/issues/50 where sound effects were not respecting settings
## [2.1.12]
- Incorporate JoziGila's [PR](https://github.com/cline/cline/pull/158) to add support for editing through diffs

View File

@@ -8,7 +8,7 @@ A fork of Cline, an autonomous coding agent, with some added experimental config
- Support for OpenRouter compression
- Support for editing through diffs
Creating a snake game with "Always approve write operations" and "Always approve browser actions":
Here's an example of Roo-Cline autonomously creating a snake game with "Always approve write operations" and "Always approve browser actions" turned on:
https://github.com/user-attachments/assets/c2bb31dc-e9b2-4d73-885d-17f1471a4987

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "roo-cline",
"version": "2.1.12",
"version": "2.1.13",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "roo-cline",
"version": "2.1.12",
"version": "2.1.13",
"dependencies": {
"@anthropic-ai/bedrock-sdk": "^0.10.2",
"@anthropic-ai/sdk": "^0.26.0",

View File

@@ -3,7 +3,7 @@
"displayName": "Roo Cline",
"description": "A fork of Cline, an autonomous coding agent, with some added experimental configuration and automation features.",
"publisher": "RooVeterinaryInc",
"version": "2.1.12",
"version": "2.1.13",
"icon": "assets/icons/rocket.png",
"galleryBanner": {
"color": "#617A91",

View File

@@ -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":

View File

@@ -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()
})
})