@@ -36,33 +36,36 @@ func TestPackageNpm(t *testing.T) {
36
36
packageDescription := "Test Description"
37
37
38
38
data := "H4sIAAAAAAAA/ytITM5OTE/VL4DQelnF+XkMVAYGBgZmJiYK2MRBwNDcSIHB2NTMwNDQzMwAqA7IMDUxA9LUdgg2UFpcklgEdAql5kD8ogCnhwio5lJQUMpLzE1VslJQcihOzi9I1S9JLS7RhSYIJR2QgrLUouLM/DyQGkM9Az1D3YIiqExKanFyUWZBCVQ2BKhVwQVJDKwosbQkI78IJO/tZ+LsbRykxFXLNdA+HwWjYBSMgpENACgAbtAACAAA"
39
- upload := `{
40
- "_id": "` + packageName + `",
41
- "name": "` + packageName + `",
42
- "description": "` + packageDescription + `",
43
- "dist-tags": {
44
- "` + packageTag + `": "` + packageVersion + `"
45
- },
46
- "versions": {
47
- "` + packageVersion + `": {
39
+
40
+ buildUpload := func (version string ) string {
41
+ return `{
42
+ "_id": "` + packageName + `",
48
43
"name": "` + packageName + `",
49
- "version": "` + packageVersion + `",
50
44
"description": "` + packageDescription + `",
51
- "author": {
52
- "name": "` + packageAuthor + `"
45
+ "dist-tags": {
46
+ "` + packageTag + `": "` + version + `"
47
+ },
48
+ "versions": {
49
+ "` + version + `": {
50
+ "name": "` + packageName + `",
51
+ "version": "` + version + `",
52
+ "description": "` + packageDescription + `",
53
+ "author": {
54
+ "name": "` + packageAuthor + `"
55
+ },
56
+ "dist": {
57
+ "integrity": "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg==",
58
+ "shasum": "aaa7eaf852a948b0aa05afeda35b1badca155d90"
59
+ }
60
+ }
53
61
},
54
- "dist": {
55
- "integrity": "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg==",
56
- "shasum": "aaa7eaf852a948b0aa05afeda35b1badca155d90"
62
+ "_attachments": {
63
+ "` + packageName + `-` + version + `.tgz": {
64
+ "data": "` + data + `"
65
+ }
57
66
}
58
- }
59
- },
60
- "_attachments": {
61
- "` + packageName + `-` + packageVersion + `.tgz": {
62
- "data": "` + data + `"
63
- }
64
- }
65
- }`
67
+ }`
68
+ }
66
69
67
70
root := fmt .Sprintf ("/api/packages/%s/npm/%s" , user .Name , url .QueryEscape (packageName ))
68
71
tagsRoot := fmt .Sprintf ("/api/packages/%s/npm/-/package/%s/dist-tags" , user .Name , url .QueryEscape (packageName ))
@@ -71,7 +74,7 @@ func TestPackageNpm(t *testing.T) {
71
74
t .Run ("Upload" , func (t * testing.T ) {
72
75
defer PrintCurrentTest (t )()
73
76
74
- req := NewRequestWithBody (t , "PUT" , root , strings .NewReader (upload ))
77
+ req := NewRequestWithBody (t , "PUT" , root , strings .NewReader (buildUpload ( packageVersion ) ))
75
78
req = addTokenAuthHeader (req , token )
76
79
MakeRequest (t , req , http .StatusCreated )
77
80
@@ -103,7 +106,7 @@ func TestPackageNpm(t *testing.T) {
103
106
t .Run ("UploadExists" , func (t * testing.T ) {
104
107
defer PrintCurrentTest (t )()
105
108
106
- req := NewRequestWithBody (t , "PUT" , root , strings .NewReader (upload ))
109
+ req := NewRequestWithBody (t , "PUT" , root , strings .NewReader (buildUpload ( packageVersion ) ))
107
110
req = addTokenAuthHeader (req , token )
108
111
MakeRequest (t , req , http .StatusBadRequest )
109
112
})
@@ -219,4 +222,57 @@ func TestPackageNpm(t *testing.T) {
219
222
test (t , http .StatusOK , "dummy" )
220
223
test (t , http .StatusOK , packageTag2 )
221
224
})
225
+
226
+ t .Run ("Delete" , func (t * testing.T ) {
227
+ defer PrintCurrentTest (t )()
228
+
229
+ req := NewRequestWithBody (t , "PUT" , root , strings .NewReader (buildUpload (packageVersion + "-dummy" )))
230
+ req = addTokenAuthHeader (req , token )
231
+ MakeRequest (t , req , http .StatusCreated )
232
+
233
+ req = NewRequest (t , "PUT" , root + "/-rev/dummy" )
234
+ MakeRequest (t , req , http .StatusUnauthorized )
235
+
236
+ req = NewRequest (t , "PUT" , root + "/-rev/dummy" )
237
+ req = addTokenAuthHeader (req , token )
238
+ MakeRequest (t , req , http .StatusOK )
239
+
240
+ t .Run ("Version" , func (t * testing.T ) {
241
+ defer PrintCurrentTest (t )()
242
+
243
+ pvs , err := packages .GetVersionsByPackageType (db .DefaultContext , user .ID , packages .TypeNpm )
244
+ assert .NoError (t , err )
245
+ assert .Len (t , pvs , 2 )
246
+
247
+ req := NewRequest (t , "DELETE" , fmt .Sprintf ("%s/-/%s/%s/-rev/dummy" , root , packageVersion , filename ))
248
+ MakeRequest (t , req , http .StatusUnauthorized )
249
+
250
+ req = NewRequest (t , "DELETE" , fmt .Sprintf ("%s/-/%s/%s/-rev/dummy" , root , packageVersion , filename ))
251
+ req = addTokenAuthHeader (req , token )
252
+ MakeRequest (t , req , http .StatusOK )
253
+
254
+ pvs , err = packages .GetVersionsByPackageType (db .DefaultContext , user .ID , packages .TypeNpm )
255
+ assert .NoError (t , err )
256
+ assert .Len (t , pvs , 1 )
257
+ })
258
+
259
+ t .Run ("Full" , func (t * testing.T ) {
260
+ defer PrintCurrentTest (t )()
261
+
262
+ pvs , err := packages .GetVersionsByPackageType (db .DefaultContext , user .ID , packages .TypeNpm )
263
+ assert .NoError (t , err )
264
+ assert .Len (t , pvs , 1 )
265
+
266
+ req := NewRequest (t , "DELETE" , root + "/-rev/dummy" )
267
+ MakeRequest (t , req , http .StatusUnauthorized )
268
+
269
+ req = NewRequest (t , "DELETE" , root + "/-rev/dummy" )
270
+ req = addTokenAuthHeader (req , token )
271
+ MakeRequest (t , req , http .StatusOK )
272
+
273
+ pvs , err = packages .GetVersionsByPackageType (db .DefaultContext , user .ID , packages .TypeNpm )
274
+ assert .NoError (t , err )
275
+ assert .Len (t , pvs , 0 )
276
+ })
277
+ })
222
278
}
0 commit comments