29
29
let ( :client ) do
30
30
instance_double (
31
31
Octokit ::Client ,
32
- contents : double ( download_url : content_url ) # rubocop:disable RSpec/VerifiedDoubles
32
+ contents : double ( download_url : content_url ) , # rubocop:disable RSpec/VerifiedDoubles
33
+ user : instance_double ( 'User' , name : 'test' ) ,
34
+ 'auto_paginate=' : nil
33
35
)
34
36
end
35
37
36
38
before do
37
- allow ( described_class ) . to receive ( :client ) . and_return ( client )
39
+ allow ( Octokit :: Client ) . to receive ( :new ) . and_return ( client )
38
40
end
39
41
40
42
it 'fails if it does not find the right release on GitHub' do
41
43
stub = stub_request ( :get , content_url ) . to_return ( status : [ 404 , 'Not Found' ] )
42
- downloaded_file = described_class . download_file_from_tag ( repository : test_repo , tag : test_tag , file_path : test_file , download_folder : './' )
44
+ downloaded_file = download_file_from_tag ( download_folder : './' )
43
45
expect ( downloaded_file ) . to be_nil
44
46
expect ( stub ) . to have_been_made . once
45
47
end
48
50
stub = stub_request ( :get , content_url ) . to_return ( status : 200 , body : 'my-test-content' )
49
51
Dir . mktmpdir ( 'a8c-download-repo-file-' ) do |tmpdir |
50
52
dst_file = File . join ( tmpdir , 'test-file.xml' )
51
- downloaded_file = described_class . download_file_from_tag ( repository : test_repo , tag : test_tag , file_path : test_file , download_folder : tmpdir )
53
+ downloaded_file = download_file_from_tag ( download_folder : tmpdir )
52
54
expect ( downloaded_file ) . to eq ( dst_file )
53
55
expect ( stub ) . to have_been_made . once
54
56
expect ( File . read ( dst_file ) ) . to eq ( 'my-test-content' )
55
57
end
56
58
end
59
+
60
+ def download_file_from_tag ( download_folder :)
61
+ helper = described_class . new ( github_token : 'Fake-GitHubToken-123' )
62
+ helper . download_file_from_tag ( repository : test_repo , tag : test_tag , file_path : test_file , download_folder : download_folder )
63
+ end
57
64
end
58
65
59
66
describe 'get_last_milestone' do
62
69
let ( :client ) do
63
70
instance_double (
64
71
Octokit ::Client ,
65
- list_milestones : [ '9.8 ❄️' , '9.9' ] . map { |title | mock_milestone ( title ) } . append ( last_stone )
72
+ list_milestones : [ '9.8 ❄️' , '9.9' ] . map { |title | mock_milestone ( title ) } . append ( last_stone ) ,
73
+ user : instance_double ( 'User' , name : 'test' ) ,
74
+ 'auto_paginate=' : nil
66
75
)
67
76
end
68
77
69
78
before do
70
- allow ( described_class ) . to receive ( :client ) . and_return ( client )
79
+ allow ( Octokit :: Client ) . to receive ( :new ) . and_return ( client )
71
80
end
72
81
73
82
it 'returns correct milestone' do
74
83
expect ( client ) . to receive ( :list_milestones )
75
- last_milestone = described_class . get_last_milestone ( repository : test_repo )
84
+ last_milestone = get_last_milestone ( repository : test_repo )
76
85
expect ( last_milestone ) . to eq ( last_stone )
77
86
end
78
87
79
88
def mock_milestone ( title )
80
89
{ title : title }
81
90
end
91
+
92
+ def get_last_milestone ( repository :)
93
+ helper = described_class . new ( github_token : 'Fake-GitHubToken-123' )
94
+ helper . get_last_milestone ( repository : repository )
95
+ end
82
96
end
83
97
84
98
describe 'comment_on_pr' do
@@ -88,12 +102,13 @@ def mock_milestone(title)
88
102
issue_comments : [ ] ,
89
103
add_comment : nil ,
90
104
update_comment : nil ,
91
- user : instance_double ( 'User' , id : 1234 )
105
+ user : instance_double ( 'User' , id : 1234 , name : 'test' ) ,
106
+ 'auto_paginate=' : nil
92
107
)
93
108
end
94
109
95
110
before do
96
- allow ( described_class ) . to receive ( :client ) . and_return ( client )
111
+ allow ( Octokit :: Client ) . to receive ( :new ) . and_return ( client )
97
112
end
98
113
99
114
it 'will create a new comment if an existing one is not found' do
@@ -124,7 +139,8 @@ def mock_milestone(title)
124
139
end
125
140
126
141
def comment_on_pr
127
- described_class . comment_on_pr (
142
+ helper = described_class . new ( github_token : 'Fake-GitHubToken-123' )
143
+ helper . comment_on_pr (
128
144
project_slug : 'test/test' ,
129
145
pr_number : 1234 ,
130
146
body : 'Test' ,
@@ -143,41 +159,48 @@ def mock_comment(body: '<!-- REUSE_ID: test-id --> Test', user_id: 1234)
143
159
let ( :client ) do
144
160
instance_double (
145
161
Octokit ::Client ,
146
- list_milestones : [ ]
162
+ list_milestones : [ ] ,
163
+ user : instance_double ( 'User' , name : 'test' ) ,
164
+ 'auto_paginate=' : nil
147
165
)
148
166
end
149
167
150
168
before do
151
- allow ( described_class ) . to receive ( :client ) . and_return ( client )
169
+ allow ( Octokit :: Client ) . to receive ( :new ) . and_return ( client )
152
170
end
153
171
154
172
it 'properly passes the repository all the way down to the Octokit::Client' do
155
173
expect ( client ) . to receive ( :list_milestones ) . with ( test_repo )
156
- described_class . get_milestone ( test_repo , 'test' )
174
+ get_milestone ( milestone_name : 'test' )
157
175
end
158
176
159
177
it 'returns nil when no milestone is returned from the api' do
160
- milestone = described_class . get_milestone ( test_repo , '10' )
178
+ milestone = get_milestone ( milestone_name : '10' )
161
179
expect ( milestone ) . to be_nil
162
180
end
163
181
164
182
it 'returns nil when no milestone title starts with the searched term' do
165
183
allow ( client ) . to receive ( :list_milestones ) . and_return ( test_milestones )
166
- milestone = described_class . get_milestone ( test_repo , '8.5' )
184
+ milestone = get_milestone ( milestone_name : '8.5' )
167
185
expect ( milestone ) . to be_nil
168
186
end
169
187
170
188
it 'returns a milestone when the milestone title starts with search term' do
171
189
allow ( client ) . to receive ( :list_milestones ) . and_return ( test_milestones )
172
- milestone = described_class . get_milestone ( test_repo , '9' )
190
+ milestone = get_milestone ( milestone_name : '9' )
173
191
expect ( milestone ) . to eq ( { title : '9.8' } )
174
192
end
175
193
176
194
it 'returns the milestone with the latest due date matching the search term when there are more than one' do
177
195
allow ( client ) . to receive ( :list_milestones ) . and_return ( test_milestones )
178
- milestone = described_class . get_milestone ( test_repo , '10.1' )
196
+ milestone = get_milestone ( milestone_name : '10.1' )
179
197
expect ( milestone ) . to eq ( { title : '10.1.3 ❄️' } )
180
198
end
199
+
200
+ def get_milestone ( milestone_name :)
201
+ helper = described_class . new ( github_token : 'Fake-GitHubToken-123' )
202
+ helper . get_milestone ( test_repo , milestone_name )
203
+ end
181
204
end
182
205
183
206
describe 'create_milestone' do
@@ -187,12 +210,14 @@ def mock_comment(body: '<!-- REUSE_ID: test-id --> Test', user_id: 1234)
187
210
let ( :client ) do
188
211
instance_double (
189
212
Octokit ::Client ,
190
- create_milestone : nil
213
+ create_milestone : nil ,
214
+ user : instance_double ( 'User' , name : 'test' ) ,
215
+ 'auto_paginate=' : nil
191
216
)
192
217
end
193
218
194
219
before do
195
- allow ( described_class ) . to receive ( :client ) . and_return ( client )
220
+ allow ( Octokit :: Client ) . to receive ( :new ) . and_return ( client )
196
221
end
197
222
198
223
it 'has the correct dates to code freeze without submission' do
@@ -212,7 +237,8 @@ def mock_comment(body: '<!-- REUSE_ID: test-id --> Test', user_id: 1234)
212
237
end
213
238
214
239
def create_milestone ( need_submission :, milestone_duration :, days_code_freeze :)
215
- described_class . create_milestone (
240
+ helper = described_class . new ( github_token : 'Fake-GitHubToken-123' )
241
+ helper . create_milestone (
216
242
test_repo ,
217
243
test_milestone_number ,
218
244
test_milestone_duedate . to_time . utc ,
@@ -231,12 +257,14 @@ def create_milestone(need_submission:, milestone_duration:, days_code_freeze:)
231
257
let ( :client ) do
232
258
instance_double (
233
259
Octokit ::Client ,
234
- create_release : nil
260
+ create_release : nil ,
261
+ user : instance_double ( 'User' , name : 'test' ) ,
262
+ 'auto_paginate=' : nil
235
263
)
236
264
end
237
265
238
266
before do
239
- allow ( described_class ) . to receive ( :client ) . and_return ( client )
267
+ allow ( Octokit :: Client ) . to receive ( :new ) . and_return ( client )
240
268
end
241
269
242
270
it 'has the correct options' do
@@ -255,7 +283,8 @@ def create_milestone(need_submission:, milestone_duration:, days_code_freeze:)
255
283
end
256
284
257
285
def create_release ( assets : [ ] )
258
- described_class . create_release (
286
+ helper = described_class . new ( github_token : 'Fake-GitHubToken-123' )
287
+ helper . create_release (
259
288
repository : test_repo ,
260
289
version : test_tag ,
261
290
target : test_target ,
0 commit comments