MCPcopy Index your code
hub / github.com/coder/coder / TestLoadSkillFile

Function TestLoadSkillFile

coderd/x/chatd/chattool/skill_test.go:171–307  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

169}
170
171func TestLoadSkillFile(t *testing.T) {
172 t.Parallel()
173
174 t.Run("ValidFile", func(t *testing.T) {
175 t.Parallel()
176
177 ctrl := gomock.NewController(t)
178 conn := agentconnmock.NewMockAgentConn(ctrl)
179
180 skill := chattool.SkillMeta{
181 Name: "my-skill",
182 Dir: "/work/.agents/skills/my-skill",
183 }
184
185 conn.EXPECT().ReadFile(
186 gomock.Any(),
187 "/work/.agents/skills/my-skill/roles/reviewer.md",
188 int64(0),
189 int64(512*1024+1),
190 ).Return(
191 io.NopCloser(strings.NewReader("review instructions")),
192 "text/markdown",
193 nil,
194 )
195
196 content, err := chattool.LoadSkillFile(
197 context.Background(), conn, skill, "roles/reviewer.md",
198 )
199 require.NoError(t, err)
200 assert.Equal(t, "review instructions", content)
201 })
202
203 t.Run("PathTraversalRejected", func(t *testing.T) {
204 t.Parallel()
205
206 ctrl := gomock.NewController(t)
207 conn := agentconnmock.NewMockAgentConn(ctrl)
208
209 skill := chattool.SkillMeta{
210 Name: "my-skill",
211 Dir: "/work/.agents/skills/my-skill",
212 }
213
214 _, err := chattool.LoadSkillFile(
215 context.Background(), conn, skill, "../../etc/passwd",
216 )
217 require.Error(t, err)
218 assert.Contains(t, err.Error(), "traversal")
219 })
220
221 t.Run("AbsolutePathRejected", func(t *testing.T) {
222 t.Parallel()
223
224 ctrl := gomock.NewController(t)
225 conn := agentconnmock.NewMockAgentConn(ctrl)
226
227 skill := chattool.SkillMeta{
228 Name: "my-skill",

Callers

nothing calls this directly

Calls 8

EXPECTMethod · 0.95
NewMockAgentConnFunction · 0.92
LoadSkillFileFunction · 0.92
RunMethod · 0.65
ReadFileMethod · 0.65
EqualMethod · 0.45
ErrorMethod · 0.45
ContainsMethod · 0.45

Tested by

no test coverage detected