Skip to content

Commit 1844264

Browse files
committed
Flag tests
1 parent cb9da6d commit 1844264

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed

coderd/coderd_test.go

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,3 +129,64 @@ func TestHealthz(t *testing.T) {
129129

130130
assert.Equal(t, "OK", string(body))
131131
}
132+
133+
func TestSwagger(t *testing.T) {
134+
t.Parallel()
135+
136+
const swaggerEndpoint = "/swagger"
137+
t.Run("endpoint enabled", func(t *testing.T) {
138+
t.Parallel()
139+
140+
client := coderdtest.New(t, &coderdtest.Options{
141+
SwaggerEndpointEnabled: true,
142+
})
143+
144+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitMedium)
145+
defer cancel()
146+
147+
resp, err := requestWithRetries(ctx, t, client, http.MethodGet, swaggerEndpoint, nil)
148+
require.NoError(t, err)
149+
150+
body, err := io.ReadAll(resp.Body)
151+
require.NoError(t, err)
152+
defer resp.Body.Close()
153+
154+
require.Contains(t, string(body), "Swagger UI")
155+
})
156+
t.Run("doc.json exposed", func(t *testing.T) {
157+
t.Parallel()
158+
159+
client := coderdtest.New(t, &coderdtest.Options{
160+
SwaggerEndpointEnabled: true,
161+
})
162+
163+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitMedium)
164+
defer cancel()
165+
166+
resp, err := requestWithRetries(ctx, t, client, http.MethodGet, swaggerEndpoint+"/doc.json", nil)
167+
require.NoError(t, err)
168+
169+
body, err := io.ReadAll(resp.Body)
170+
require.NoError(t, err)
171+
defer resp.Body.Close()
172+
173+
require.Contains(t, string(body), `"swagger": "2.0"`)
174+
})
175+
t.Run("endpoint disabled by default", func(t *testing.T) {
176+
t.Parallel()
177+
178+
client := coderdtest.New(t, nil)
179+
180+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitMedium)
181+
defer cancel()
182+
183+
resp, err := requestWithRetries(ctx, t, client, http.MethodGet, swaggerEndpoint, nil)
184+
require.NoError(t, err)
185+
186+
body, err := io.ReadAll(resp.Body)
187+
require.NoError(t, err)
188+
defer resp.Body.Close()
189+
190+
require.Equal(t, "<pre>\n</pre>\n", string(body))
191+
})
192+
}

coderd/coderdtest/coderdtest.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ type Options struct {
111111
// test instances are running against the same database.
112112
Database database.Store
113113
Pubsub database.Pubsub
114+
115+
SwaggerEndpointEnabled bool
114116
}
115117

116118
// New constructs a codersdk client connected to an in-memory API instance.
@@ -288,6 +290,7 @@ func NewOptions(t *testing.T, options *Options) (func(http.Handler), context.Can
288290
AgentStatsRefreshInterval: options.AgentStatsRefreshInterval,
289291
DeploymentConfig: options.DeploymentConfig,
290292
UpdateCheckOptions: options.UpdateCheckOptions,
293+
SwaggerEndpointEnabled: options.SwaggerEndpointEnabled,
291294
}
292295
}
293296

0 commit comments

Comments
 (0)