Skip to content

Commit 2c57c96

Browse files
committed
API tests
1 parent 56f08f9 commit 2c57c96

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed

coderd/templateversions_test.go

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,3 +1099,65 @@ func TestTemplateExamples(t *testing.T) {
10991099
require.EqualValues(t, ls, ex)
11001100
})
11011101
}
1102+
1103+
func TestTemplateVersionVariables(t *testing.T) {
1104+
t.Parallel()
1105+
1106+
templateVariables := []*proto.TemplateVariable{
1107+
{
1108+
Name: "first_variable",
1109+
Description: "This is the first variable",
1110+
Type: "string",
1111+
Required: true,
1112+
Sensitive: true,
1113+
},
1114+
{
1115+
Name: "second_variable",
1116+
Description: "This is the second variable",
1117+
DefaultValue: "123",
1118+
Type: "number",
1119+
},
1120+
}
1121+
1122+
echoResponses := &echo.Responses{
1123+
Parse: []*proto.Parse_Response{
1124+
{
1125+
Type: &proto.Parse_Response_Complete{
1126+
Complete: &proto.Parse_Complete{
1127+
TemplateVariables: templateVariables,
1128+
},
1129+
},
1130+
},
1131+
},
1132+
ProvisionPlan: echo.ProvisionComplete,
1133+
ProvisionApply: []*proto.Provision_Response{{
1134+
Type: &proto.Provision_Response_Complete{
1135+
Complete: &proto.Provision_Complete{},
1136+
},
1137+
}},
1138+
}
1139+
1140+
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
1141+
user := coderdtest.CreateFirstUser(t, client)
1142+
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, echoResponses)
1143+
templateVersion := coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
1144+
1145+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
1146+
defer cancel()
1147+
1148+
actualVariables, err := client.TemplateVersionVariables(ctx, templateVersion.ID)
1149+
require.NoError(t, err)
1150+
1151+
require.Len(t, actualVariables, 2)
1152+
for i := range templateVariables {
1153+
require.Equal(t, templateVariables[i].Name, actualVariables[i].Name)
1154+
require.Equal(t, templateVariables[i].Description, actualVariables[i].Description)
1155+
require.Equal(t, templateVariables[i].Type, actualVariables[i].Type)
1156+
require.Equal(t, templateVariables[i].DefaultValue, actualVariables[i].DefaultValue)
1157+
require.Equal(t, templateVariables[i].Required, actualVariables[i].Required)
1158+
require.Equal(t, templateVariables[i].Sensitive, actualVariables[i].Sensitive)
1159+
}
1160+
1161+
require.Equal(t, "", actualVariables[0].Value)
1162+
require.Equal(t, templateVariables[1].DefaultValue, actualVariables[1].Value)
1163+
}

codersdk/templateversions.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,20 @@ func (c *Client) TemplateVersionResources(ctx context.Context, version uuid.UUID
150150
return resources, json.NewDecoder(res.Body).Decode(&resources)
151151
}
152152

153+
// TemplateVersionVariables returns resources a template version variables.
154+
func (c *Client) TemplateVersionVariables(ctx context.Context, version uuid.UUID) ([]TemplateVersionVariable, error) {
155+
res, err := c.Request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/templateversions/%s/variables", version), nil)
156+
if err != nil {
157+
return nil, err
158+
}
159+
defer res.Body.Close()
160+
if res.StatusCode != http.StatusOK {
161+
return nil, ReadBodyAsError(res)
162+
}
163+
var variables []TemplateVersionVariable
164+
return variables, json.NewDecoder(res.Body).Decode(&variables)
165+
}
166+
153167
// TemplateVersionLogsBefore returns logs that occurred before a specific log ID.
154168
func (c *Client) TemplateVersionLogsBefore(ctx context.Context, version uuid.UUID, before int64) ([]ProvisionerJobLog, error) {
155169
return c.provisionerJobLogsBefore(ctx, fmt.Sprintf("/api/v2/templateversions/%s/logs", version), before)

0 commit comments

Comments
 (0)