summaryrefslogtreecommitdiffhomepage
path: root/internal/llm/tools/write_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/llm/tools/write_test.go')
-rw-r--r--internal/llm/tools/write_test.go41
1 files changed, 11 insertions, 30 deletions
diff --git a/internal/llm/tools/write_test.go b/internal/llm/tools/write_test.go
index 893a48b62..50dafc14f 100644
--- a/internal/llm/tools/write_test.go
+++ b/internal/llm/tools/write_test.go
@@ -9,13 +9,12 @@ import (
"time"
"github.com/kujtimiihoxha/termai/internal/lsp"
- "github.com/kujtimiihoxha/termai/internal/permission"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestWriteTool_Info(t *testing.T) {
- tool := NewWriteTool(make(map[string]*lsp.Client))
+ tool := NewWriteTool(make(map[string]*lsp.Client), newMockPermissionService(true))
info := tool.Info()
assert.Equal(t, WriteToolName, info.Name)
@@ -27,21 +26,13 @@ func TestWriteTool_Info(t *testing.T) {
}
func TestWriteTool_Run(t *testing.T) {
- // Setup a mock permission handler that always allows
- origPermission := permission.Default
- defer func() {
- permission.Default = origPermission
- }()
- permission.Default = newMockPermissionService(true)
-
// Create a temporary directory for testing
tempDir, err := os.MkdirTemp("", "write_tool_test")
require.NoError(t, err)
defer os.RemoveAll(tempDir)
t.Run("creates a new file successfully", func(t *testing.T) {
- permission.Default = newMockPermissionService(true)
- tool := NewWriteTool(make(map[string]*lsp.Client))
+ tool := NewWriteTool(make(map[string]*lsp.Client), newMockPermissionService(true))
filePath := filepath.Join(tempDir, "new_file.txt")
content := "This is a test content"
@@ -70,8 +61,7 @@ func TestWriteTool_Run(t *testing.T) {
})
t.Run("creates file with nested directories", func(t *testing.T) {
- permission.Default = newMockPermissionService(true)
- tool := NewWriteTool(make(map[string]*lsp.Client))
+ tool := NewWriteTool(make(map[string]*lsp.Client), newMockPermissionService(true))
filePath := filepath.Join(tempDir, "nested/dirs/new_file.txt")
content := "Content in nested directory"
@@ -100,8 +90,7 @@ func TestWriteTool_Run(t *testing.T) {
})
t.Run("updates existing file", func(t *testing.T) {
- permission.Default = newMockPermissionService(true)
- tool := NewWriteTool(make(map[string]*lsp.Client))
+ tool := NewWriteTool(make(map[string]*lsp.Client), newMockPermissionService(true))
// Create a file first
filePath := filepath.Join(tempDir, "existing_file.txt")
@@ -138,8 +127,7 @@ func TestWriteTool_Run(t *testing.T) {
})
t.Run("handles invalid parameters", func(t *testing.T) {
- permission.Default = newMockPermissionService(true)
- tool := NewWriteTool(make(map[string]*lsp.Client))
+ tool := NewWriteTool(make(map[string]*lsp.Client), newMockPermissionService(true))
call := ToolCall{
Name: WriteToolName,
@@ -152,8 +140,7 @@ func TestWriteTool_Run(t *testing.T) {
})
t.Run("handles missing file_path", func(t *testing.T) {
- permission.Default = newMockPermissionService(true)
- tool := NewWriteTool(make(map[string]*lsp.Client))
+ tool := NewWriteTool(make(map[string]*lsp.Client), newMockPermissionService(true))
params := WriteParams{
FilePath: "",
@@ -174,8 +161,7 @@ func TestWriteTool_Run(t *testing.T) {
})
t.Run("handles missing content", func(t *testing.T) {
- permission.Default = newMockPermissionService(true)
- tool := NewWriteTool(make(map[string]*lsp.Client))
+ tool := NewWriteTool(make(map[string]*lsp.Client), newMockPermissionService(true))
params := WriteParams{
FilePath: filepath.Join(tempDir, "file.txt"),
@@ -196,8 +182,7 @@ func TestWriteTool_Run(t *testing.T) {
})
t.Run("handles writing to a directory path", func(t *testing.T) {
- permission.Default = newMockPermissionService(true)
- tool := NewWriteTool(make(map[string]*lsp.Client))
+ tool := NewWriteTool(make(map[string]*lsp.Client), newMockPermissionService(true))
// Create a directory
dirPath := filepath.Join(tempDir, "test_dir")
@@ -223,8 +208,7 @@ func TestWriteTool_Run(t *testing.T) {
})
t.Run("handles permission denied", func(t *testing.T) {
- permission.Default = newMockPermissionService(false)
- tool := NewWriteTool(make(map[string]*lsp.Client))
+ tool := NewWriteTool(make(map[string]*lsp.Client), newMockPermissionService(false))
filePath := filepath.Join(tempDir, "permission_denied.txt")
params := WriteParams{
@@ -250,8 +234,7 @@ func TestWriteTool_Run(t *testing.T) {
})
t.Run("detects file modified since last read", func(t *testing.T) {
- permission.Default = newMockPermissionService(true)
- tool := NewWriteTool(make(map[string]*lsp.Client))
+ tool := NewWriteTool(make(map[string]*lsp.Client), newMockPermissionService(true))
// Create a file
filePath := filepath.Join(tempDir, "modified_file.txt")
@@ -292,8 +275,7 @@ func TestWriteTool_Run(t *testing.T) {
})
t.Run("skips writing when content is identical", func(t *testing.T) {
- permission.Default = newMockPermissionService(true)
- tool := NewWriteTool(make(map[string]*lsp.Client))
+ tool := NewWriteTool(make(map[string]*lsp.Client), newMockPermissionService(true))
// Create a file
filePath := filepath.Join(tempDir, "identical_content.txt")
@@ -323,4 +305,3 @@ func TestWriteTool_Run(t *testing.T) {
assert.Contains(t, response.Content, "already contains the exact content")
})
}
-