@@ -17,6 +17,7 @@ package svc
17
17
import (
18
18
"context"
19
19
"encoding/json"
20
+ "io/fs"
20
21
"net/http"
21
22
"net/http/httptest"
22
23
"os"
@@ -36,6 +37,7 @@ func stringPtr(s string) *string {
36
37
}
37
38
38
39
func TestConvertAPIPackageToPackageMeta (t * testing.T ) {
40
+ t .Parallel ()
39
41
createdAt := time .Date (2025 , 4 , 10 , 12 , 0 , 0 , 0 , time .UTC )
40
42
tests := []struct {
41
43
name string
@@ -93,17 +95,19 @@ func TestConvertAPIPackageToPackageMeta(t *testing.T) {
93
95
94
96
for _ , tt := range tests {
95
97
t .Run (tt .name , func (t * testing.T ) {
98
+ t .Parallel ()
96
99
got := convertAPIPackageToPackageMeta (tt .input )
97
100
assert .Equal (t , tt .want , got )
98
101
})
99
102
}
100
103
}
101
104
102
105
func TestFileSystemProvider (t * testing.T ) {
106
+ t .Parallel ()
103
107
// Create a temporary directory for test files
104
108
tmpDir := t .TempDir ()
105
109
packagesDir := filepath .Join (tmpDir , "themes" , "default" , "data" , "registry" , "packages" )
106
- require .NoError (t , os .MkdirAll (packagesDir , 0755 ))
110
+ require .NoError (t , os .MkdirAll (packagesDir , fs . ModePerm ))
107
111
108
112
// Create test metadata files
109
113
testPackages := []pkg.PackageMeta {
@@ -132,13 +136,14 @@ func TestFileSystemProvider(t *testing.T) {
132
136
for _ , p := range testPackages {
133
137
data , err := yaml .Marshal (p )
134
138
require .NoError (t , err )
135
- err = os .WriteFile (filepath .Join (packagesDir , p .Name + ".yaml" ), data , 0755 )
139
+ err = os .WriteFile (filepath .Join (packagesDir , p .Name + ".yaml" ), data , fs . ModePerm )
136
140
require .NoError (t , err )
137
141
}
138
142
139
143
provider := NewFileSystemProvider (tmpDir )
140
144
141
145
t .Run ("GetPackageMetadata" , func (t * testing.T ) {
146
+ t .Parallel ()
142
147
got , err := provider .GetPackageMetadata (context .Background (), "aws-test" )
143
148
require .NoError (t , err )
144
149
assert .Equal (t , testPackages [0 ], got )
@@ -148,13 +153,15 @@ func TestFileSystemProvider(t *testing.T) {
148
153
})
149
154
150
155
t .Run ("ListPackageMetadata" , func (t * testing.T ) {
156
+ t .Parallel ()
151
157
got , err := provider .ListPackageMetadata (context .Background ())
152
158
require .NoError (t , err )
153
159
assert .Len (t , got , len (testPackages ))
154
160
assert .ElementsMatch (t , testPackages , got )
155
161
})
156
162
157
163
t .Run ("GetPackageMetadata errors" , func (t * testing.T ) {
164
+ t .Parallel ()
158
165
t .Run ("non-existent file" , func (t * testing.T ) {
159
166
provider := NewFileSystemProvider (tmpDir )
160
167
_ , err := provider .GetPackageMetadata (context .Background (), "non-existent" )
@@ -163,7 +170,7 @@ func TestFileSystemProvider(t *testing.T) {
163
170
})
164
171
165
172
t .Run ("invalid yaml" , func (t * testing.T ) {
166
- err := os .WriteFile (filepath .Join (packagesDir , "invalid.yaml" ), []byte ("invalid yaml: ][" ), 0755 )
173
+ err := os .WriteFile (filepath .Join (packagesDir , "invalid.yaml" ), []byte ("invalid yaml: ][" ), fs . ModePerm )
167
174
require .NoError (t , err )
168
175
169
176
provider := NewFileSystemProvider (tmpDir )
@@ -174,6 +181,7 @@ func TestFileSystemProvider(t *testing.T) {
174
181
})
175
182
176
183
t .Run ("ListPackageMetadata errors" , func (t * testing.T ) {
184
+ t .Parallel ()
177
185
t .Run ("non-existent directory" , func (t * testing.T ) {
178
186
tmpDir := t .TempDir ()
179
187
provider := NewFileSystemProvider (tmpDir )
@@ -185,17 +193,17 @@ func TestFileSystemProvider(t *testing.T) {
185
193
t .Run ("ignores non-yaml files" , func (t * testing.T ) {
186
194
tmpDir := t .TempDir ()
187
195
packagesDir := filepath .Join (tmpDir , "themes" , "default" , "data" , "registry" , "packages" )
188
- require .NoError (t , os .MkdirAll (packagesDir , 0755 ))
196
+ require .NoError (t , os .MkdirAll (packagesDir , fs . ModePerm ))
189
197
190
198
// Create a valid yaml file
191
199
validPkg := pkg.PackageMeta {Name : "valid" , Publisher : "Pulumi" }
192
200
validYAML , err := yaml .Marshal (validPkg )
193
201
require .NoError (t , err )
194
- err = os .WriteFile (filepath .Join (packagesDir , "valid.yaml" ), validYAML , 0755 )
202
+ err = os .WriteFile (filepath .Join (packagesDir , "valid.yaml" ), validYAML , fs . ModePerm )
195
203
require .NoError (t , err )
196
204
197
205
// Create an invalid yaml file
198
- err = os .WriteFile (filepath .Join (packagesDir , "readme.txt" ), []byte ("not valid yaml" ), 0755 )
206
+ err = os .WriteFile (filepath .Join (packagesDir , "readme.txt" ), []byte ("not valid yaml" ), fs . ModePerm )
199
207
require .NoError (t , err )
200
208
201
209
provider := NewFileSystemProvider (tmpDir )
@@ -208,8 +216,11 @@ func TestFileSystemProvider(t *testing.T) {
208
216
}
209
217
210
218
func TestRegistryAPIProvider (t * testing.T ) {
219
+ t .Parallel ()
211
220
t .Run ("GetPackageMetadata" , func (t * testing.T ) {
221
+ t .Parallel ()
212
222
t .Run ("successfully returns package metadata" , func (t * testing.T ) {
223
+ t .Parallel ()
213
224
// configure test server
214
225
expectedPackage := PackageMetadata {
215
226
Name : "aws-test" ,
@@ -227,7 +238,8 @@ func TestRegistryAPIProvider(t *testing.T) {
227
238
assert .Equal (t , "/packages" , r .URL .Path )
228
239
assert .Equal (t , "name=aws-test" , r .URL .RawQuery )
229
240
w .WriteHeader (http .StatusOK )
230
- w .Write (jsonResponse )
241
+ _ , err = w .Write (jsonResponse )
242
+ require .NoError (t , err )
231
243
}))
232
244
defer server .Close ()
233
245
@@ -244,6 +256,7 @@ func TestRegistryAPIProvider(t *testing.T) {
244
256
})
245
257
246
258
t .Run ("non existent package" , func (t * testing.T ) {
259
+ t .Parallel ()
247
260
server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
248
261
w .WriteHeader (http .StatusNotFound )
249
262
}))
@@ -271,7 +284,8 @@ func TestRegistryAPIProvider(t *testing.T) {
271
284
272
285
server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
273
286
w .WriteHeader (http .StatusOK )
274
- w .Write (jsonResponse )
287
+ _ , err = w .Write (jsonResponse )
288
+ require .NoError (t , err )
275
289
}))
276
290
defer server .Close ()
277
291
@@ -287,7 +301,9 @@ func TestRegistryAPIProvider(t *testing.T) {
287
301
})
288
302
289
303
t .Run ("ListPackageMetadata" , func (t * testing.T ) {
304
+ t .Parallel ()
290
305
t .Run ("successfully lists packages with pagination" , func (t * testing.T ) {
306
+ t .Parallel ()
291
307
// configure to test with pagination
292
308
firstPage := struct {
293
309
Packages []PackageMetadata `json:"packages"`
@@ -321,9 +337,11 @@ func TestRegistryAPIProvider(t *testing.T) {
321
337
322
338
// Return different responses based on continuation token
323
339
if r .URL .Query ().Get ("continuationToken" ) == "page2" {
324
- w .Write (secondPageJSON )
340
+ _ , err = w .Write (secondPageJSON )
341
+ require .NoError (t , err )
325
342
} else {
326
- w .Write (firstPageJSON )
343
+ _ , err = w .Write (firstPageJSON )
344
+ require .NoError (t , err )
327
345
}
328
346
}))
329
347
defer server .Close ()
@@ -340,9 +358,11 @@ func TestRegistryAPIProvider(t *testing.T) {
340
358
})
341
359
342
360
t .Run ("invalid json response" , func (t * testing.T ) {
361
+ t .Parallel ()
343
362
server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
344
363
w .WriteHeader (http .StatusOK )
345
- w .Write ([]byte ("invalid json" ))
364
+ _ , err := w .Write ([]byte ("invalid json" ))
365
+ require .NoError (t , err )
346
366
}))
347
367
defer server .Close ()
348
368
@@ -357,6 +377,7 @@ func TestRegistryAPIProvider(t *testing.T) {
357
377
})
358
378
359
379
t .Run ("500 server error" , func (t * testing.T ) {
380
+ t .Parallel ()
360
381
server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
361
382
w .WriteHeader (http .StatusInternalServerError )
362
383
}))
0 commit comments