MCPcopy
hub / github.com/docker/docker-agent / TestCodeModeTool_CallEcho

Function TestCodeModeTool_CallEcho

pkg/tools/codemode/codemode_test.go:159–193  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

157}
158
159func TestCodeModeTool_CallEcho(t *testing.T) {
160 t.Parallel()
161 type EchoArgs struct {
162 Message string `json:"message" jsonschema:"Message to echo"`
163 }
164
165 tool := Wrap(&testToolSet{
166 tools: []tools.Tool{{
167 Name: "echo",
168 Handler: tools.NewHandler(func(ctx context.Context, args map[string]any) (*tools.ToolCallResult, error) {
169 return tools.ResultSuccess("ECHO"), nil
170 }),
171 Parameters: tools.MustSchemaFor[EchoArgs](),
172 }},
173 })
174
175 allTools, err := tool.Tools(t.Context())
176 require.NoError(t, err)
177 require.Len(t, allTools, 1)
178
179 result, err := allTools[0].Handler(t.Context(), tools.ToolCall{
180 Function: tools.FunctionCall{
181 Arguments: `{"script":"return echo({'message':'ECHO'});"}`,
182 },
183 })
184 require.NoError(t, err)
185
186 var scriptResult ScriptResult
187 err = json.Unmarshal([]byte(result.Output), &scriptResult)
188 require.NoError(t, err)
189
190 require.Equal(t, "ECHO", scriptResult.Value)
191 require.Empty(t, scriptResult.StdErr)
192 require.Empty(t, scriptResult.StdOut)
193}
194
195// TestCodeModeTool_StartRollsBackOnError verifies that when one toolset fails
196// to start, all successfully-started toolsets are stopped (rolled back).

Callers

nothing calls this directly

Calls 6

NewHandlerFunction · 0.92
ResultSuccessFunction · 0.92
WrapFunction · 0.85
ContextMethod · 0.80
ToolsMethod · 0.65
LenMethod · 0.65

Tested by

no test coverage detected