@@ -48,12 +48,13 @@ func TestDownloadInMemoryClient(t *testing.T) {
48
48
devfileUtilsClient := NewDevfileUtilsClient ()
49
49
50
50
tests := []struct {
51
- name string
52
- url string
53
- token string
54
- client DevfileUtils
55
- want []byte
56
- wantErr string
51
+ name string
52
+ url string
53
+ token string
54
+ client DevfileUtils
55
+ want []byte
56
+ wantParent []byte
57
+ wantErr string
57
58
}{
58
59
{
59
60
name : "Case 1: Input url is valid" ,
@@ -90,28 +91,36 @@ func TestDownloadInMemoryClient(t *testing.T) {
90
91
},
91
92
{
92
93
name : "Case 6: Input url is valid with a mock client, dont use mock data during invocation" ,
93
- client : MockDevfileUtilsClient {},
94
+ client : & MockDevfileUtilsClient {},
94
95
url : server .URL ,
95
96
want : []byte {79 , 75 },
96
97
},
97
98
{
98
99
name : "Case 7: Input url is valid with a mock client and mock token" ,
99
- client : MockDevfileUtilsClient {MockGitURL : util.MockGitUrl {Host : "https://github.com/devfile/library/blob/main/devfile.yaml" }, GitTestToken : "valid-token" , DownloadOptions : util.MockDownloadOptions {MockFile : "OK" }},
100
+ client : & MockDevfileUtilsClient {MockGitURL : util.MockGitUrl {Host : "https://github.com/devfile/library/blob/main/devfile.yaml" }, GitTestToken : "valid-token" , DownloadOptions : util.MockDownloadOptions {MockFile : "OK" }},
100
101
url : "https://github.com/devfile/library/blob/main/devfile.yaml" ,
101
102
want : []byte {79 , 75 },
102
103
},
103
104
{
104
105
name : "Case 8: Public Github repo, with invalid token " ,
105
- client : MockDevfileUtilsClient {MockGitURL : util.MockGitUrl {Host : "https://github.com/devfile/library/blob/main/devfile.yaml" }, GitTestToken : "invalid-token" },
106
+ client : & MockDevfileUtilsClient {MockGitURL : util.MockGitUrl {Host : "https://github.com/devfile/library/blob/main/devfile.yaml" }, GitTestToken : "invalid-token" },
106
107
url : "https://github.com/devfile/library/blob/main/devfile.yaml" ,
107
108
wantErr : "failed to retrieve https://github.com/devfile/library/blob/main/devfile.yaml" ,
108
109
},
109
110
{
110
111
name : "Case 9: Input github url is valid with a mock client, dont use mock data during invocation" ,
111
- client : MockDevfileUtilsClient {},
112
+ client : & MockDevfileUtilsClient {},
112
113
url : "https://raw.githubusercontent.com/maysunfaisal/OK/main/OK.txt" ,
113
114
want : []byte {79 , 75 },
114
115
},
116
+ {
117
+ name : "Case 10: Test devfile with private parent" ,
118
+ client : & MockDevfileUtilsClient {},
119
+ url : "https://github.com/devfile/library/blob/main/devfile.yaml" ,
120
+ token : "parent-devfile" ,
121
+ want : []byte (util .MockDevfileWithParentRef ),
122
+ wantParent : []byte (util .MockParentDevfile ),
123
+ },
115
124
}
116
125
117
126
for _ , tt := range tests {
@@ -120,10 +129,21 @@ func TestDownloadInMemoryClient(t *testing.T) {
120
129
if (err != nil ) != (tt .wantErr != "" ) {
121
130
t .Errorf ("Failed to download file with error: %s" , err )
122
131
} else if err == nil && ! reflect .DeepEqual (data , tt .want ) {
123
- t .Errorf ("Expected: %v, received: %v, difference at %v" , tt .want , string (data [:]), pretty .Compare (tt .want , data ))
132
+ t .Errorf ("Expected: %v, received: %v, difference at %v" , string ( tt .want ) , string (data [:]), pretty .Compare (tt .want , data ))
124
133
} else if err != nil {
125
134
assert .Regexp (t , tt .wantErr , err .Error (), "Error message should match" )
126
135
}
136
+
137
+ if len (tt .wantParent ) > 0 {
138
+ data , err := tt .client .DownloadInMemory (util.HTTPRequestParams {URL : tt .url , Token : tt .token })
139
+ if (err != nil ) != (tt .wantErr != "" ) {
140
+ t .Errorf ("Failed to download file with error: %s" , err )
141
+ } else if err == nil && ! reflect .DeepEqual (data , tt .wantParent ) {
142
+ t .Errorf ("Expected: %v, received: %v, difference at %v" , string (tt .wantParent ), string (data [:]), pretty .Compare (tt .wantParent , data ))
143
+ } else if err != nil {
144
+ assert .Regexp (t , tt .wantErr , err .Error (), "Error message should match" )
145
+ }
146
+ }
127
147
})
128
148
}
129
149
}
0 commit comments