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

Commit9e072ba

Browse files
committed
test: add unit test for template vars in dynamic parameter
1 parent8396c67 commit9e072ba

File tree

3 files changed

+91
-1
lines changed

3 files changed

+91
-1
lines changed

‎coderd/coderdtest/dynamicparameters.go‎

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ type DynamicParameterTemplateParams struct {
2929
// TemplateID is used to update an existing template instead of creating a new one.
3030
TemplateID uuid.UUID
3131

32-
Versionfunc(request*codersdk.CreateTemplateVersionRequest)
32+
Versionfunc(request*codersdk.CreateTemplateVersionRequest)
33+
Variables []codersdk.TemplateVersionVariable
3334
}
3435

3536
funcDynamicParameterTemplate(t*testing.T,client*codersdk.Client,org uuid.UUID,argsDynamicParameterTemplateParams) (codersdk.Template, codersdk.TemplateVersion) {
@@ -48,6 +49,32 @@ func DynamicParameterTemplate(t *testing.T, client *codersdk.Client, org uuid.UU
4849
},
4950
}}
5051

52+
userVars:=make([]codersdk.VariableValue,0,len(args.Variables))
53+
parseVars:=make([]*proto.TemplateVariable,0,len(args.Variables))
54+
for_,argv:=rangeargs.Variables {
55+
parseVars=append(parseVars,&proto.TemplateVariable{
56+
Name:argv.Name,
57+
Description:argv.Description,
58+
Type:argv.Type,
59+
DefaultValue:argv.DefaultValue,
60+
Required:argv.Required,
61+
Sensitive:argv.Sensitive,
62+
})
63+
64+
userVars=append(userVars, codersdk.VariableValue{
65+
Name:argv.Name,
66+
Value:argv.Value,
67+
})
68+
}
69+
70+
files.Parse= []*proto.Response{{
71+
Type:&proto.Response_Parse{
72+
Parse:&proto.ParseComplete{
73+
TemplateVariables:parseVars,
74+
},
75+
},
76+
}}
77+
5178
mime:=codersdk.ContentTypeTar
5279
ifargs.Zip {
5380
mime=codersdk.ContentTypeZip
@@ -59,6 +86,7 @@ func DynamicParameterTemplate(t *testing.T, client *codersdk.Client, org uuid.UU
5986
ifargs.Version!=nil {
6087
args.Version(request)
6188
}
89+
request.UserVariableValues=userVars
6290
})
6391
AwaitTemplateVersionJobCompleted(t,client,version.ID)
6492

‎coderd/parameters_test.go‎

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,36 @@ func TestDynamicParametersWithTerraformValues(t *testing.T) {
343343
require.Len(t,preview.Diagnostics,1)
344344
require.Equal(t,preview.Diagnostics[0].Extra.Code,"owner_not_found")
345345
})
346+
347+
t.Run("TemplateVariables",func(t*testing.T) {
348+
t.Parallel()
349+
350+
dynamicParametersTerraformSource,err:=os.ReadFile("testdata/parameters/variables/main.tf")
351+
require.NoError(t,err)
352+
353+
setup:=setupDynamicParamsTest(t,setupDynamicParamsTestParams{
354+
provisionerDaemonVersion:provProto.CurrentVersion.String(),
355+
mainTF:dynamicParametersTerraformSource,
356+
variables: []codersdk.TemplateVersionVariable{
357+
{Name:"one",Value:"austin",DefaultValue:"alice",Type:"string"},
358+
},
359+
plan:nil,
360+
static:nil,
361+
})
362+
363+
ctx:=testutil.Context(t,testutil.WaitShort*100000)
364+
stream:=setup.stream
365+
previews:=stream.Chan()
366+
367+
// Should see the output of the module represented
368+
preview:=testutil.RequireReceive(ctx,t,previews)
369+
require.Equal(t,-1,preview.ID)
370+
require.Empty(t,preview.Diagnostics)
371+
372+
require.Len(t,preview.Parameters,1)
373+
coderdtest.AssertParameter(t,"variable_values",preview.Parameters).
374+
Exists().Value("austin")
375+
})
346376
}
347377

348378
typesetupDynamicParamsTestParamsstruct {
@@ -355,6 +385,7 @@ type setupDynamicParamsTestParams struct {
355385

356386
static []*proto.RichParameter
357387
expectWebsocketErrorbool
388+
variables []codersdk.TemplateVersionVariable
358389
}
359390

360391
typedynamicParamsTeststruct {
@@ -380,6 +411,7 @@ func setupDynamicParamsTest(t *testing.T, args setupDynamicParamsTestParams) dyn
380411
Plan:args.plan,
381412
ModulesArchive:args.modulesArchive,
382413
StaticParams:args.static,
414+
Variables:args.variables,
383415
})
384416

385417
ctx:=testutil.Context(t,testutil.WaitShort)
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// Base case for workspace tags + parameters.
2+
terraform {
3+
required_providers {
4+
coder={
5+
source="coder/coder"
6+
}
7+
docker={
8+
source="kreuzwerker/docker"
9+
version="3.0.2"
10+
}
11+
}
12+
}
13+
14+
variable"one" {
15+
default="alice"
16+
type=string
17+
}
18+
19+
20+
data"coder_parameter""variable_values" {
21+
name="variable_values"
22+
description="Just to show the variable values"
23+
type="string"
24+
default=var.one
25+
26+
option {
27+
name="one"
28+
value=var.one
29+
}
30+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp