@@ -135,40 +135,64 @@ func TestProvisionerKeys(t *testing.T) {
135
135
require .ErrorContains (t ,err ,"reserved" )
136
136
}
137
137
138
- func TestProvisionerKey (t * testing.T ) {
138
+ func TestGetProvisionerKey (t * testing.T ) {
139
139
t .Parallel ()
140
- t .Run ("GetKey" ,func (t * testing.T ) {
141
- t .Parallel ()
142
140
143
- ctx := testutil .Context (t ,testutil .WaitShort )
141
+ tests := []struct {
142
+ name string
143
+ useFakeKey bool
144
+ fakeKey string
145
+ success bool
146
+ expectedErr string
147
+ }{
148
+ {
149
+ name :"ok" ,
150
+ useFakeKey :false ,
151
+ success :true ,
152
+ expectedErr :"" ,
153
+ },
154
+ }
144
155
145
- dv := coderdtest .DeploymentValues (t )
146
- client ,owner := coderdenttest .New (t ,& coderdenttest.Options {
147
- Options :& coderdtest.Options {
148
- DeploymentValues :dv ,
149
- },
150
- LicenseOptions :& coderdenttest.LicenseOptions {
151
- Features : license.Features {
152
- codersdk .FeatureMultipleOrganizations :1 ,
153
- codersdk .FeatureExternalProvisionerDaemons :1 ,
154
- },
155
- },
156
- })
156
+ for _ ,tt := range tests {
157
+ t .Run (tt .name ,func (t * testing.T ) {
157
158
158
- // nolint:gocritic
159
- key ,err := client .CreateProvisionerKey (ctx ,owner .OrganizationID , codersdk.CreateProvisionerKeyRequest {
160
- Name :"my-test-key" ,
161
- Tags :map [string ]string {"key1" :"value1" ,"key2" :"value2" },
162
- })
163
- require .NoError (t ,err )
159
+ t .Parallel ()
164
160
165
- fetchedKey ,err := client .GetProvisionerKey (ctx ,key .Key )
166
- require .NoError (t ,err )
167
- require .Equal (t ,fetchedKey .Name ,"my-test-key" )
168
- require .Equal (t ,fetchedKey .Tags , codersdk.ProvisionerKeyTags {"key1" :"value1" ,"key2" :"value2" })
161
+ ctx := testutil .Context (t ,testutil .WaitShort )
169
162
170
- erroneousPK ,err := client .GetProvisionerKey (ctx ,"abcdefghijklmnopqrstuvwxyz01234567890123456" )
171
- require .Empty (t ,erroneousPK )
172
- require .Error (t ,err )
173
- })
163
+ dv := coderdtest .DeploymentValues (t )
164
+ client ,owner := coderdenttest .New (t ,& coderdenttest.Options {
165
+ Options :& coderdtest.Options {
166
+ DeploymentValues :dv ,
167
+ },
168
+ LicenseOptions :& coderdenttest.LicenseOptions {
169
+ Features : license.Features {
170
+ codersdk .FeatureMultipleOrganizations :1 ,
171
+ codersdk .FeatureExternalProvisionerDaemons :1 ,
172
+ },
173
+ },
174
+ })
175
+
176
+ // nolint:gocritic - ruleguard: This client is operating as the owner user, which has unrestricted permissions.
177
+ key ,err := client .CreateProvisionerKey (ctx ,owner .OrganizationID , codersdk.CreateProvisionerKeyRequest {
178
+ Name :"my-test-key" ,
179
+ Tags :map [string ]string {"key1" :"value1" ,"key2" :"value2" },
180
+ })
181
+ require .NoError (t ,err )
182
+
183
+ pk := key .Key
184
+ if tt .useFakeKey {
185
+ pk = tt .fakeKey
186
+ }
187
+
188
+ fetchedKey ,err := client .GetProvisionerKey (ctx ,pk )
189
+ if ! tt .success {
190
+ require .ErrorContains (t ,err ,tt .expectedErr )
191
+ }else {
192
+ require .NoError (t ,err )
193
+ require .Equal (t ,fetchedKey .Name ,"my-test-key" )
194
+ require .Equal (t ,fetchedKey .Tags , codersdk.ProvisionerKeyTags {"key1" :"value1" ,"key2" :"value2" })
195
+ }
196
+ })
197
+ }
174
198
}