@@ -2,17 +2,262 @@ package authzquery_test
2
2
3
3
import (
4
4
"testing"
5
+ "time"
6
+
7
+ "github.com/google/uuid"
5
8
6
9
"github.com/coder/coder/coderd/database"
7
10
"github.com/coder/coder/coderd/database/dbgen"
8
11
"github.com/coder/coder/coderd/rbac"
9
12
)
10
13
11
14
func (suite * MethodTestSuite ) TestTemplate () {
15
+ suite .Run ("GetPreviousTemplateVersion" , func () {
16
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
17
+ tvid := uuid .New ()
18
+ now := time .Now ()
19
+ o1 := dbgen .Organization (t , db , database.Organization {})
20
+ t1 := dbgen .Template (t , db , database.Template {
21
+ OrganizationID : o1 .ID ,
22
+ ActiveVersionID : tvid ,
23
+ })
24
+ _ = dbgen .TemplateVersion (t , db , database.TemplateVersion {
25
+ CreatedAt : now .Add (- time .Hour ),
26
+ ID : tvid ,
27
+ Name : t1 .Name ,
28
+ OrganizationID : o1 .ID ,
29
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true }})
30
+ _ = dbgen .TemplateVersion (t , db , database.TemplateVersion {
31
+ CreatedAt : now .Add (- 2 * time .Hour ),
32
+ Name : t1 .Name ,
33
+ OrganizationID : o1 .ID ,
34
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true }})
35
+ return methodCase (inputs (database.GetPreviousTemplateVersionParams {
36
+ Name : t1 .Name ,
37
+ OrganizationID : o1 .ID ,
38
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
39
+ }), asserts (t1 , rbac .ActionRead ))
40
+ })
41
+ })
42
+ suite .Run ("GetTemplateAverageBuildTime" , func () {
43
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
44
+ t1 := dbgen .Template (t , db , database.Template {})
45
+ return methodCase (inputs (database.GetTemplateAverageBuildTimeParams {
46
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
47
+ }), asserts (t1 , rbac .ActionRead ))
48
+ })
49
+ })
12
50
suite .Run ("GetTemplateByID" , func () {
13
51
suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
14
- obj := dbgen .Template (t , db , database.Template {})
15
- return methodCase (inputs (obj .ID ), asserts (obj , rbac .ActionRead ))
52
+ t1 := dbgen .Template (t , db , database.Template {})
53
+ return methodCase (inputs (t1 .ID ), asserts (t1 , rbac .ActionRead ))
54
+ })
55
+ })
56
+ suite .Run ("GetTemplateByOrganizationAndName" , func () {
57
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
58
+ o1 := dbgen .Organization (t , db , database.Organization {})
59
+ t1 := dbgen .Template (t , db , database.Template {
60
+ OrganizationID : o1 .ID ,
61
+ })
62
+ return methodCase (inputs (database.GetTemplateByOrganizationAndNameParams {
63
+ Name : t1 .Name ,
64
+ OrganizationID : o1 .ID ,
65
+ }), asserts (t1 , rbac .ActionRead ))
66
+ })
67
+ })
68
+ suite .Run ("GetTemplateDAUs" , func () {
69
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
70
+ t1 := dbgen .Template (t , db , database.Template {})
71
+ return methodCase (inputs (t1 .ID ), asserts (t1 , rbac .ActionRead ))
72
+ })
73
+ })
74
+ suite .Run ("GetTemplateVersionByJobID" , func () {
75
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
76
+ t1 := dbgen .Template (t , db , database.Template {})
77
+ tv := dbgen .TemplateVersion (t , db , database.TemplateVersion {
78
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
79
+ })
80
+ return methodCase (inputs (tv .JobID ), asserts (t1 , rbac .ActionRead ))
81
+ })
82
+ })
83
+ suite .Run ("GetTemplateVersionByTemplateIDAndName" , func () {
84
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
85
+ t1 := dbgen .Template (t , db , database.Template {})
86
+ tv := dbgen .TemplateVersion (t , db , database.TemplateVersion {
87
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
88
+ })
89
+ return methodCase (inputs (database.GetTemplateVersionByTemplateIDAndNameParams {
90
+ Name : tv .Name ,
91
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
92
+ }), asserts (t1 , rbac .ActionRead ))
93
+ })
94
+ })
95
+ suite .Run ("GetTemplateVersionParameters" , func () {
96
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
97
+ t1 := dbgen .Template (t , db , database.Template {})
98
+ tv := dbgen .TemplateVersion (t , db , database.TemplateVersion {
99
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
100
+ })
101
+ return methodCase (inputs (tv .ID ), asserts (t1 , rbac .ActionRead ))
102
+ })
103
+ })
104
+ suite .Run ("GetTemplateGroupRoles" , func () {
105
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
106
+ t1 := dbgen .Template (t , db , database.Template {})
107
+ return methodCase (inputs (t1 .ID ), asserts (t1 , rbac .ActionRead ))
108
+ })
109
+ })
110
+ suite .Run ("GetTemplateUserRoles" , func () {
111
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
112
+ t1 := dbgen .Template (t , db , database.Template {})
113
+ return methodCase (inputs (t1 .ID ), asserts (t1 , rbac .ActionRead ))
114
+ })
115
+ })
116
+ suite .Run ("GetTemplateVersionByID" , func () {
117
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
118
+ t1 := dbgen .Template (t , db , database.Template {})
119
+ tv := dbgen .TemplateVersion (t , db , database.TemplateVersion {
120
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
121
+ })
122
+ return methodCase (inputs (tv .ID ), asserts (t1 , rbac .ActionRead ))
123
+ })
124
+ })
125
+ suite .Run ("GetTemplateVersionsByIDs" , func () {
126
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
127
+ t1 := dbgen .Template (t , db , database.Template {})
128
+ t2 := dbgen .Template (t , db , database.Template {})
129
+ tv1 := dbgen .TemplateVersion (t , db , database.TemplateVersion {
130
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
131
+ })
132
+ tv2 := dbgen .TemplateVersion (t , db , database.TemplateVersion {
133
+ TemplateID : uuid.NullUUID {UUID : t2 .ID , Valid : true },
134
+ })
135
+ return methodCase (inputs ([]uuid.UUID {tv1 .ID , tv2 .ID }),
136
+ asserts (t1 , rbac .ActionRead , t2 , rbac .ActionRead ))
137
+ })
138
+ })
139
+ suite .Run ("GetTemplateVersionsByTemplateID" , func () {
140
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
141
+ t1 := dbgen .Template (t , db , database.Template {})
142
+ _ = dbgen .TemplateVersion (t , db , database.TemplateVersion {
143
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
144
+ })
145
+ _ = dbgen .TemplateVersion (t , db , database.TemplateVersion {
146
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
147
+ })
148
+ return methodCase (inputs (database.GetTemplateVersionsByTemplateIDParams {
149
+ TemplateID : t1 .ID ,
150
+ }), asserts (t1 , rbac .ActionRead ))
151
+ })
152
+ })
153
+ suite .Run ("GetTemplateVersionsCreatedAfter" , func () {
154
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
155
+ now := time .Now ()
156
+ t1 := dbgen .Template (t , db , database.Template {})
157
+ _ = dbgen .TemplateVersion (t , db , database.TemplateVersion {
158
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
159
+ CreatedAt : now .Add (- time .Hour ),
160
+ })
161
+ _ = dbgen .TemplateVersion (t , db , database.TemplateVersion {
162
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
163
+ CreatedAt : now .Add (- 2 * time .Hour ),
164
+ })
165
+ return methodCase (inputs (now .Add (- time .Hour )), asserts (rbac .ResourceTemplate .All (), rbac .ActionRead ))
166
+ })
167
+ })
168
+ suite .Run ("GetTemplatesWithFilter" , func () {
169
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
170
+ _ = dbgen .Template (t , db , database.Template {})
171
+ // No asserts because SQLFilter.
172
+ return methodCase (inputs (database.GetTemplatesWithFilterParams {}), asserts ())
173
+ })
174
+ })
175
+ suite .Run ("InsertTemplate" , func () {
176
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
177
+ orgID := uuid .New ()
178
+ return methodCase (inputs (database.InsertTemplateParams {
179
+ Provisioner : "echo" ,
180
+ OrganizationID : orgID ,
181
+ }), asserts (rbac .ResourceTemplate .InOrg (orgID ), rbac .ActionCreate ))
182
+ })
183
+ })
184
+ suite .Run ("InsertTemplateVersion" , func () {
185
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
186
+ t1 := dbgen .Template (t , db , database.Template {})
187
+ return methodCase (inputs (database.InsertTemplateVersionParams {
188
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
189
+ OrganizationID : t1 .OrganizationID ,
190
+ }), asserts (t1 , rbac .ActionRead , t1 , rbac .ActionCreate ))
191
+ })
192
+ })
193
+ suite .Run ("SoftDeleteTemplateByID" , func () {
194
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
195
+ t1 := dbgen .Template (t , db , database.Template {})
196
+ return methodCase (inputs (t1 .ID ), asserts (t1 , rbac .ActionDelete ))
197
+ })
198
+ })
199
+ suite .Run ("UpdateTemplateACLByID" , func () {
200
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
201
+ t1 := dbgen .Template (t , db , database.Template {})
202
+ return methodCase (inputs (database.UpdateTemplateACLByIDParams {
203
+ ID : t1 .ID ,
204
+ }), asserts (t1 , rbac .ActionCreate ))
205
+ })
206
+ })
207
+ suite .Run ("UpdateTemplateActiveVersionByID" , func () {
208
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
209
+ t1 := dbgen .Template (t , db , database.Template {})
210
+ tv := dbgen .TemplateVersion (t , db , database.TemplateVersion {
211
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
212
+ })
213
+ return methodCase (inputs (database.UpdateTemplateActiveVersionByIDParams {
214
+ ID : t1 .ID ,
215
+ ActiveVersionID : tv .ID ,
216
+ }), asserts (t1 , rbac .ActionUpdate ))
217
+ })
218
+ })
219
+ suite .Run ("UpdateTemplateDeletedByID" , func () {
220
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
221
+ t1 := dbgen .Template (t , db , database.Template {})
222
+ return methodCase (inputs (database.UpdateTemplateDeletedByIDParams {
223
+ ID : t1 .ID ,
224
+ Deleted : true ,
225
+ }), asserts (t1 , rbac .ActionDelete ))
226
+ })
227
+ })
228
+ suite .Run ("UpdateTemplateMetaByID" , func () {
229
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
230
+ t1 := dbgen .Template (t , db , database.Template {})
231
+ return methodCase (inputs (database.UpdateTemplateMetaByIDParams {
232
+ ID : t1 .ID ,
233
+ Name : "foo" ,
234
+ }), asserts (t1 , rbac .ActionUpdate ))
235
+ })
236
+ })
237
+ suite .Run ("UpdateTemplateVersionByID" , func () {
238
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
239
+ t1 := dbgen .Template (t , db , database.Template {})
240
+ tv := dbgen .TemplateVersion (t , db , database.TemplateVersion {
241
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
242
+ })
243
+ return methodCase (inputs (database.UpdateTemplateVersionByIDParams {
244
+ ID : tv .ID ,
245
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
246
+ }), asserts (t1 , rbac .ActionUpdate ))
247
+ })
248
+ })
249
+ suite .Run ("UpdateTemplateVersionDescriptionByJobID" , func () {
250
+ suite .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
251
+ jobID := uuid .New ()
252
+ t1 := dbgen .Template (t , db , database.Template {})
253
+ _ = dbgen .TemplateVersion (t , db , database.TemplateVersion {
254
+ TemplateID : uuid.NullUUID {UUID : t1 .ID , Valid : true },
255
+ JobID : jobID ,
256
+ })
257
+ return methodCase (inputs (database.UpdateTemplateVersionDescriptionByJobIDParams {
258
+ JobID : jobID ,
259
+ Readme : "foo" ,
260
+ }), asserts (t1 , rbac .ActionUpdate ))
16
261
})
17
262
})
18
263
}
0 commit comments