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

Function TestContextPartsFromDir

agent/agentcontextconfig/api_test.go:46–142  ·  view source on GitHub ↗

nolint:paralleltest,tparallel // Uses t.Setenv to isolate HOME.

(t *testing.T)

Source from the content-addressed store, hash-verified

44
45//nolint:paralleltest,tparallel // Uses t.Setenv to isolate HOME.
46func TestContextPartsFromDir(t *testing.T) {
47 // Prevent ~/.coder/skills on the host from leaking into results.
48 t.Setenv("HOME", t.TempDir())
49 t.Setenv("USERPROFILE", t.TempDir())
50
51 t.Run("ReturnsInstructionFilePart", func(t *testing.T) {
52 t.Parallel()
53
54 dir := t.TempDir()
55 instructionPath := filepath.Join(dir, "AGENTS.md")
56 require.NoError(t, os.WriteFile(instructionPath, []byte("project instructions"), 0o600))
57
58 parts := agentcontextconfig.ContextPartsFromDir(dir)
59 contextParts := filterParts(parts, codersdk.ChatMessagePartTypeContextFile)
60 skillParts := filterParts(parts, codersdk.ChatMessagePartTypeSkill)
61
62 require.Len(t, parts, 1)
63 require.Len(t, contextParts, 1)
64 require.Empty(t, skillParts)
65 require.Equal(t, instructionPath, contextParts[0].ContextFilePath)
66 require.Equal(t, "project instructions", contextParts[0].ContextFileContent)
67 require.False(t, contextParts[0].ContextFileTruncated)
68 })
69
70 t.Run("ReturnsSkillParts", func(t *testing.T) {
71 t.Parallel()
72
73 dir := t.TempDir()
74 skillDir := writeSkillMetaFile(t, dir, "my-skill", "A test skill")
75
76 parts := agentcontextconfig.ContextPartsFromDir(dir)
77 contextParts := filterParts(parts, codersdk.ChatMessagePartTypeContextFile)
78 skillParts := filterParts(parts, codersdk.ChatMessagePartTypeSkill)
79
80 require.Len(t, parts, 1)
81 require.Empty(t, contextParts)
82 require.Len(t, skillParts, 1)
83 require.Equal(t, "my-skill", skillParts[0].SkillName)
84 require.Equal(t, "A test skill", skillParts[0].SkillDescription)
85 require.Equal(t, skillDir, skillParts[0].SkillDir)
86 require.Equal(t, "SKILL.md", skillParts[0].ContextFileSkillMetaFile)
87 })
88
89 t.Run("ReturnsSkillPartsFromSkillsDir", func(t *testing.T) {
90 t.Parallel()
91
92 dir := t.TempDir()
93 skillDir := writeSkillMetaFileInRoot(
94 t,
95 filepath.Join(dir, "skills"),
96 "my-skill",
97 "A test skill",
98 )
99
100 parts := agentcontextconfig.ContextPartsFromDir(dir)
101 contextParts := filterParts(parts, codersdk.ChatMessagePartTypeContextFile)
102 skillParts := filterParts(parts, codersdk.ChatMessagePartTypeSkill)
103

Callers

nothing calls this directly

Calls 11

ContextPartsFromDirFunction · 0.92
filterPartsFunction · 0.85
writeSkillMetaFileFunction · 0.85
writeSkillMetaFileInRootFunction · 0.85
SetenvMethod · 0.80
TempDirMethod · 0.65
RunMethod · 0.65
WriteFileMethod · 0.65
LenMethod · 0.45
EmptyMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected