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

Function TestMCPServerConfigsCRUD

coderd/mcp_test.go:63–165  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

61}
62
63func TestMCPServerConfigsCRUD(t *testing.T) {
64 t.Parallel()
65
66 ctx := testutil.Context(t, testutil.WaitLong)
67 client := newMCPClient(t)
68 _ = coderdtest.CreateFirstUser(t, client)
69
70 // Create a config with all fields populated including OAuth2
71 // secrets so we can verify they are not leaked.
72 created, err := client.CreateMCPServerConfig(ctx, codersdk.CreateMCPServerConfigRequest{
73 DisplayName: "My MCP Server",
74 Slug: "my-mcp-server",
75 Description: "Integration test server.",
76 IconURL: "https://example.com/icon.png",
77 Transport: "streamable_http",
78 URL: "https://mcp.example.com/v1",
79 AuthType: "oauth2",
80 OAuth2ClientID: "client-id-123",
81 OAuth2ClientSecret: "super-secret-value",
82 OAuth2AuthURL: "https://auth.example.com/authorize",
83 OAuth2TokenURL: "https://auth.example.com/token",
84 OAuth2Scopes: "read write",
85 Availability: "default_on",
86 Enabled: true,
87 ToolAllowList: []string{},
88 ToolDenyList: []string{},
89 })
90 require.NoError(t, err)
91 require.NotEqual(t, uuid.Nil, created.ID)
92 require.Equal(t, "My MCP Server", created.DisplayName)
93 require.Equal(t, "my-mcp-server", created.Slug)
94 require.Equal(t, "Integration test server.", created.Description)
95 require.Equal(t, "streamable_http", created.Transport)
96 require.Equal(t, "https://mcp.example.com/v1", created.URL)
97 require.Equal(t, "oauth2", created.AuthType)
98 require.Equal(t, "client-id-123", created.OAuth2ClientID)
99 require.Equal(t, "default_on", created.Availability)
100 require.True(t, created.Enabled)
101 require.False(t, created.AllowInPlanMode)
102 require.False(t, created.ForwardCoderHeaders)
103
104 // Verify the secret is indicated but never returned.
105 require.True(t, created.HasOAuth2Secret)
106
107 // Verify the config appears in the list and direct get responses.
108 configs, err := client.MCPServerConfigs(ctx)
109 require.NoError(t, err)
110 require.Len(t, configs, 1)
111 require.Equal(t, created.ID, configs[0].ID)
112 require.True(t, configs[0].HasOAuth2Secret)
113 require.False(t, configs[0].AllowInPlanMode)
114 require.False(t, configs[0].ForwardCoderHeaders)
115
116 fetched, err := client.MCPServerConfigByID(ctx, created.ID)
117 require.NoError(t, err)
118 require.Equal(t, created.ID, fetched.ID)
119 require.False(t, fetched.AllowInPlanMode)
120 require.False(t, fetched.ForwardCoderHeaders)

Callers

nothing calls this directly

Calls 11

ContextFunction · 0.92
CreateFirstUserFunction · 0.92
newMCPClientFunction · 0.85
CreateMCPServerConfigMethod · 0.80
MCPServerConfigsMethod · 0.80
MCPServerConfigByIDMethod · 0.80
DeleteMCPServerConfigMethod · 0.80
UpdateMCPServerConfigMethod · 0.65
EqualMethod · 0.45
LenMethod · 0.45
EmptyMethod · 0.45

Tested by

no test coverage detected