Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitbb234fd

Browse files
committed
test: include unit test to assert parameters
1 parent68fb748 commitbb234fd

File tree

1 file changed

+83
-7
lines changed

1 file changed

+83
-7
lines changed

‎coderd/parameters_test.go

Lines changed: 83 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/coder/coder/v2/coderd/database/dbtestutil"
1616
"github.com/coder/coder/v2/coderd/database/pubsub"
1717
"github.com/coder/coder/v2/coderd/rbac"
18+
"github.com/coder/coder/v2/coderd/util/ptr"
1819
"github.com/coder/coder/v2/codersdk"
1920
"github.com/coder/coder/v2/codersdk/wsjson"
2021
"github.com/coder/coder/v2/provisioner/echo"
@@ -210,6 +211,79 @@ func TestDynamicParametersWithTerraformValues(t *testing.T) {
210211
// test to make it obvious what this test is doing.
211212
require.Zero(t,setup.api.FileCache.Count())
212213
})
214+
215+
t.Run("RebuildParameters",func(t*testing.T) {
216+
t.Parallel()
217+
218+
dynamicParametersTerraformSource,err:=os.ReadFile("testdata/parameters/modules/main.tf")
219+
require.NoError(t,err)
220+
221+
modulesArchive,err:=terraform.GetModulesArchive(os.DirFS("testdata/parameters/modules"))
222+
require.NoError(t,err)
223+
224+
setup:=setupDynamicParamsTest(t,setupDynamicParamsTestParams{
225+
provisionerDaemonVersion:provProto.CurrentVersion.String(),
226+
mainTF:dynamicParametersTerraformSource,
227+
modulesArchive:modulesArchive,
228+
plan:nil,
229+
static:nil,
230+
})
231+
232+
ctx:=testutil.Context(t,testutil.WaitMedium)
233+
stream:=setup.stream
234+
previews:=stream.Chan()
235+
236+
// Should see the output of the module represented
237+
preview:=testutil.RequireReceive(ctx,t,previews)
238+
require.Equal(t,-1,preview.ID)
239+
require.Empty(t,preview.Diagnostics)
240+
241+
require.Len(t,preview.Parameters,1)
242+
require.Equal(t,"jetbrains_ide",preview.Parameters[0].Name)
243+
require.True(t,preview.Parameters[0].Value.Valid)
244+
require.Equal(t,"CL",preview.Parameters[0].Value.Value)
245+
_=stream.Close(websocket.StatusGoingAway)
246+
247+
wrk:=coderdtest.CreateWorkspace(t,setup.client,setup.template.ID,func(request*codersdk.CreateWorkspaceRequest) {
248+
request.RichParameterValues= []codersdk.WorkspaceBuildParameter{
249+
{
250+
Name:preview.Parameters[0].Name,
251+
Value:"GO",
252+
},
253+
}
254+
})
255+
coderdtest.AwaitWorkspaceBuildJobCompleted(t,setup.client,wrk.LatestBuild.ID)
256+
257+
params,err:=setup.client.WorkspaceBuildParameters(ctx,wrk.LatestBuild.ID)
258+
require.NoError(t,err)
259+
require.Len(t,params,1)
260+
require.Equal(t,"jetbrains_ide",params[0].Name)
261+
require.Equal(t,"GO",params[0].Value)
262+
263+
// A helper function to assert params
264+
doTransition:=func(t*testing.T,trans codersdk.WorkspaceTransition) {
265+
t.Helper()
266+
267+
bld,err:=setup.client.CreateWorkspaceBuild(ctx,wrk.ID, codersdk.CreateWorkspaceBuildRequest{
268+
TemplateVersionID:setup.template.ActiveVersionID,
269+
Transition:trans,
270+
EnableDynamicParameters:ptr.Ref(true),
271+
})
272+
require.NoError(t,err)
273+
coderdtest.AwaitWorkspaceBuildJobCompleted(t,setup.client,wrk.LatestBuild.ID)
274+
275+
latestParams,err:=setup.client.WorkspaceBuildParameters(ctx,bld.ID)
276+
require.Len(t,latestParams,1)
277+
require.Equal(t,"jetbrains_ide",latestParams[0].Name)
278+
require.Equal(t,"GO",latestParams[0].Value)
279+
}
280+
281+
// Restart the workspace, then delete. Asserting params on all builds.
282+
doTransition(t,codersdk.WorkspaceTransitionStop)
283+
doTransition(t,codersdk.WorkspaceTransitionStart)
284+
doTransition(t,codersdk.WorkspaceTransitionDelete)
285+
286+
})
213287
}
214288

215289
typesetupDynamicParamsTestParamsstruct {
@@ -225,9 +299,10 @@ type setupDynamicParamsTestParams struct {
225299
}
226300

227301
typedynamicParamsTeststruct {
228-
client*codersdk.Client
229-
api*coderd.API
230-
stream*wsjson.Stream[codersdk.DynamicParametersResponse, codersdk.DynamicParametersRequest]
302+
client*codersdk.Client
303+
api*coderd.API
304+
stream*wsjson.Stream[codersdk.DynamicParametersResponse, codersdk.DynamicParametersRequest]
305+
template codersdk.Template
231306
}
232307

233308
funcsetupDynamicParamsTest(t*testing.T,argssetupDynamicParamsTestParams)dynamicParamsTest {
@@ -259,7 +334,7 @@ func setupDynamicParamsTest(t *testing.T, args setupDynamicParamsTestParams) dyn
259334

260335
version:=coderdtest.CreateTemplateVersion(t,templateAdmin,owner.OrganizationID,files)
261336
coderdtest.AwaitTemplateVersionJobCompleted(t,templateAdmin,version.ID)
262-
_=coderdtest.CreateTemplate(t,templateAdmin,owner.OrganizationID,version.ID)
337+
tpl:=coderdtest.CreateTemplate(t,templateAdmin,owner.OrganizationID,version.ID)
263338

264339
ctx:=testutil.Context(t,testutil.WaitShort)
265340
stream,err:=templateAdmin.TemplateVersionDynamicParameters(ctx,templateAdminUser.ID,version.ID)
@@ -280,9 +355,10 @@ func setupDynamicParamsTest(t *testing.T, args setupDynamicParamsTestParams) dyn
280355
})
281356

282357
returndynamicParamsTest{
283-
client:ownerClient,
284-
stream:stream,
285-
api:api,
358+
client:ownerClient,
359+
api:api,
360+
stream:stream,
361+
template:tpl,
286362
}
287363
}
288364

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp