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

Function TestDynamicParametersOwnerSSHPublicKey

coderd/parameters_test.go:30–73  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

28)
29
30func TestDynamicParametersOwnerSSHPublicKey(t *testing.T) {
31 t.Parallel()
32
33 ownerClient := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
34 owner := coderdtest.CreateFirstUser(t, ownerClient)
35 templateAdmin, _ := coderdtest.CreateAnotherUser(t, ownerClient, owner.OrganizationID, rbac.RoleTemplateAdmin())
36
37 dynamicParametersTerraformSource, err := os.ReadFile("testdata/parameters/public_key/main.tf")
38 require.NoError(t, err)
39 dynamicParametersTerraformPlan, err := os.ReadFile("testdata/parameters/public_key/plan.json")
40 require.NoError(t, err)
41 sshKey, err := templateAdmin.GitSSHKey(t.Context(), "me")
42 require.NoError(t, err)
43
44 files := echo.WithExtraFiles(map[string][]byte{
45 "main.tf": dynamicParametersTerraformSource,
46 })
47 files.ProvisionPlan = []*proto.Response{{
48 Type: &proto.Response_Plan{
49 Plan: &proto.PlanComplete{
50 Plan: dynamicParametersTerraformPlan,
51 },
52 },
53 }}
54
55 version := coderdtest.CreateTemplateVersion(t, templateAdmin, owner.OrganizationID, files)
56 coderdtest.AwaitTemplateVersionJobCompleted(t, templateAdmin, version.ID)
57 _ = coderdtest.CreateTemplate(t, templateAdmin, owner.OrganizationID, version.ID)
58
59 ctx := testutil.Context(t, testutil.WaitShort)
60 stream, err := templateAdmin.TemplateVersionDynamicParameters(ctx, codersdk.Me, version.ID)
61 require.NoError(t, err)
62 defer stream.Close(websocket.StatusGoingAway)
63
64 previews := stream.Chan()
65
66 // Should automatically send a form state with all defaulted/empty values
67 preview := testutil.RequireReceive(ctx, t, previews)
68 require.Equal(t, -1, preview.ID)
69 require.Empty(t, preview.Diagnostics)
70 require.Equal(t, "public_key", preview.Parameters[0].Name)
71 require.True(t, preview.Parameters[0].Value.Valid)
72 require.Equal(t, sshKey.PublicKey, preview.Parameters[0].Value.Value)
73}
74
75// TestDynamicParametersWithTerraformValues is for testing the websocket flow of
76// dynamic parameters. No workspaces are created.

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
RoleTemplateAdminFunction · 0.92
WithExtraFilesFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
ContextFunction · 0.92
RequireReceiveFunction · 0.92
ReadFileMethod · 0.65

Tested by

no test coverage detected