@@ -13,16 +13,16 @@ import (
13
13
"github.com/stretchr/testify/assert"
14
14
)
15
15
16
- const (
17
- description = "Package Description"
18
- author = "KN4CK3R"
19
- homepage = "https://gitea.io/"
20
- license = "MIT"
21
- )
22
-
23
16
func TestParsePackage (t * testing.T ) {
24
- createPackage := func (name , version string ) io.Reader {
25
- metadata := `{
17
+ const (
18
+ description = "Package Description"
19
+ author = "KN4CK3R"
20
+ homepage = "https://gitea.io/"
21
+ license = "MIT"
22
+ payload = "gitea test dummy payload" // a fake payload for test only
23
+ )
24
+ makeDefaultPackageMeta := func (name , version string ) string {
25
+ return `{
26
26
"name":"` + name + `",
27
27
"vers":"` + version + `",
28
28
"description":"` + description + `",
@@ -36,18 +36,19 @@ func TestParsePackage(t *testing.T) {
36
36
"homepage":"` + homepage + `",
37
37
"license":"` + license + `"
38
38
}`
39
-
39
+ }
40
+ createPackage := func (metadata string ) io.Reader {
40
41
var buf bytes.Buffer
41
42
binary .Write (& buf , binary .LittleEndian , uint32 (len (metadata )))
42
43
buf .WriteString (metadata )
43
- binary .Write (& buf , binary .LittleEndian , uint32 (4 ))
44
- buf .WriteString ("test" )
44
+ binary .Write (& buf , binary .LittleEndian , uint32 (len ( payload ) ))
45
+ buf .WriteString (payload )
45
46
return & buf
46
47
}
47
48
48
49
t .Run ("InvalidName" , func (t * testing.T ) {
49
50
for _ , name := range []string {"" , "0test" , "-test" , "_test" , strings .Repeat ("a" , 65 )} {
50
- data := createPackage (name , "1.0.0" )
51
+ data := createPackage (makeDefaultPackageMeta ( name , "1.0.0" ) )
51
52
52
53
cp , err := ParsePackage (data )
53
54
assert .Nil (t , cp )
@@ -57,7 +58,7 @@ func TestParsePackage(t *testing.T) {
57
58
58
59
t .Run ("InvalidVersion" , func (t * testing.T ) {
59
60
for _ , version := range []string {"" , "1." , "-1.0" , "1.0.0/1" } {
60
- data := createPackage ("test" , version )
61
+ data := createPackage (makeDefaultPackageMeta ( "test" , version ) )
61
62
62
63
cp , err := ParsePackage (data )
63
64
assert .Nil (t , cp )
@@ -66,7 +67,7 @@ func TestParsePackage(t *testing.T) {
66
67
})
67
68
68
69
t .Run ("Valid" , func (t * testing.T ) {
69
- data := createPackage ("test" , "1.0.0" )
70
+ data := createPackage (makeDefaultPackageMeta ( "test" , "1.0.0" ) )
70
71
71
72
cp , err := ParsePackage (data )
72
73
assert .NotNil (t , cp )
@@ -78,9 +79,34 @@ func TestParsePackage(t *testing.T) {
78
79
assert .Equal (t , []string {author }, cp .Metadata .Authors )
79
80
assert .Len (t , cp .Metadata .Dependencies , 1 )
80
81
assert .Equal (t , "dep" , cp .Metadata .Dependencies [0 ].Name )
82
+ assert .Nil (t , cp .Metadata .Dependencies [0 ].Package )
81
83
assert .Equal (t , homepage , cp .Metadata .ProjectURL )
82
84
assert .Equal (t , license , cp .Metadata .License )
83
85
content , _ := io .ReadAll (cp .Content )
84
- assert .Equal (t , "test" , string (content ))
86
+ assert .Equal (t , payload , string (content ))
87
+ })
88
+
89
+ t .Run ("Renamed" , func (t * testing.T ) {
90
+ data := createPackage (`{
91
+ "name":"test-pkg",
92
+ "vers":"1.0",
93
+ "description":"test-desc",
94
+ "authors": ["test-author"],
95
+ "deps":[
96
+ {
97
+ "name":"dep-renamed",
98
+ "explicit_name_in_toml":"dep-explicit",
99
+ "version_req":"1.0"
100
+ }
101
+ ],
102
+ "homepage":"https://gitea.io/",
103
+ "license":"MIT"
104
+ }` )
105
+ cp , err := ParsePackage (data )
106
+ assert .NoError (t , err )
107
+ assert .Equal (t , "test-pkg" , cp .Name )
108
+ assert .Equal (t , "https://gitea.io/" , cp .Metadata .ProjectURL )
109
+ assert .Equal (t , "dep-explicit" , cp .Metadata .Dependencies [0 ].Name )
110
+ assert .Equal (t , "dep-renamed" , * cp .Metadata .Dependencies [0 ].Package )
85
111
})
86
112
}
0 commit comments