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

Function TestTemplateVersion

coderd/templateversions_test.go:39–112  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

37)
38
39func TestTemplateVersion(t *testing.T) {
40 t.Parallel()
41 t.Run("Get", func(t *testing.T) {
42 t.Parallel()
43 client, _, api := coderdtest.NewWithAPI(t, nil)
44 user := coderdtest.CreateFirstUser(t, client)
45 authz := coderdtest.AssertRBAC(t, api, client).Reset()
46
47 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil, func(req *codersdk.CreateTemplateVersionRequest) {
48 req.Name = "bananas"
49 req.Message = "first try"
50 })
51 authz.AssertChecked(t, policy.ActionCreate, rbac.ResourceTemplate.InOrg(user.OrganizationID))
52
53 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
54 defer cancel()
55
56 authz.Reset()
57 tv, err := client.TemplateVersion(ctx, version.ID)
58 authz.AssertChecked(t, policy.ActionRead, tv)
59 require.NoError(t, err)
60 if assert.Equal(t, tv.Job.Status, codersdk.ProvisionerJobPending) {
61 assert.NotNil(t, tv.MatchedProvisioners)
62 assert.Zero(t, tv.MatchedProvisioners.Available)
63 assert.Zero(t, tv.MatchedProvisioners.Count)
64 assert.False(t, tv.MatchedProvisioners.MostRecentlySeen.Valid)
65 }
66
67 assert.Equal(t, "bananas", tv.Name)
68 assert.Equal(t, "first try", tv.Message)
69 })
70
71 t.Run("Message limit exceeded", func(t *testing.T) {
72 t.Parallel()
73 client, _, _ := coderdtest.NewWithAPI(t, nil)
74 user := coderdtest.CreateFirstUser(t, client)
75
76 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
77 defer cancel()
78
79 file, err := client.Upload(ctx, codersdk.ContentTypeTar, bytes.NewReader([]byte{}))
80 require.NoError(t, err)
81 _, err = client.CreateTemplateVersion(ctx, user.OrganizationID, codersdk.CreateTemplateVersionRequest{
82 Name: "bananas",
83 Message: strings.Repeat("a", 1048577),
84 StorageMethod: codersdk.ProvisionerStorageMethodFile,
85 FileID: file.ID,
86 Provisioner: codersdk.ProvisionerTypeEcho,
87 })
88 require.Error(t, err, "message too long, create should fail")
89 })
90
91 t.Run("MemberCanRead", func(t *testing.T) {
92 t.Parallel()
93
94 client := coderdtest.New(t, nil)
95 user := coderdtest.CreateFirstUser(t, client)
96 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)

Callers

nothing calls this directly

Calls 15

NewWithAPIFunction · 0.92
CreateFirstUserFunction · 0.92
AssertRBACFunction · 0.92
CreateTemplateVersionFunction · 0.92
NewFunction · 0.92
CreateTemplateFunction · 0.92
ContextFunction · 0.92
CreateAnotherUserFunction · 0.92
AssertCheckedMethod · 0.80
InOrgMethod · 0.80
RunMethod · 0.65
ResetMethod · 0.65

Tested by

no test coverage detected