Skip to content

Commit 40b7edc

Browse files
committed
test(search_files): check if the filename will be found multiple times
1 parent 3f8a156 commit 40b7edc

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

filesystemserver/handler_test.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,3 +68,37 @@ func TestReadfile_NoAccess(t *testing.T) {
6868
assert.True(t, result.IsError)
6969
assert.Contains(t, fmt.Sprint(result.Content[0]), "access denied - path outside allowed directories")
7070
}
71+
72+
func TestSearchFiles_SameFilename(t *testing.T) {
73+
dir := t.TempDir()
74+
75+
handler, err := NewFilesystemHandler([]string{dir})
76+
require.NoError(t, err)
77+
78+
err = os.MkdirAll(filepath.Join(dir, "sub1", "sub2"), 0755)
79+
assert.NoError(t, err)
80+
81+
file1 := filepath.Join(dir, "sub1", "test.h")
82+
err = os.WriteFile(file1, []byte("foo"), 0644)
83+
require.NoError(t, err)
84+
85+
file2 := filepath.Join(dir, "sub1", "test.h")
86+
err = os.WriteFile(file2, []byte("foo"), 0644)
87+
require.NoError(t, err)
88+
89+
request := mcp.CallToolRequest{}
90+
request.Params.Name = "search_files"
91+
request.Params.Arguments = map[string]any{
92+
"path": dir,
93+
"pattern": "test.h",
94+
}
95+
96+
result, err := handler.handleSearchFiles(context.Background(), request)
97+
require.NoError(t, err)
98+
assert.False(t, result.IsError)
99+
assert.Len(t, result.Content, 1)
100+
101+
assert.Contains(t, result.Content[0].(mcp.TextContent).Text, file1)
102+
assert.Contains(t, result.Content[0].(mcp.TextContent).Text, file2)
103+
104+
}

0 commit comments

Comments
 (0)