@@ -179,12 +179,37 @@ def initialize
179
179
180
180
describe '#file' do
181
181
describe 'set' do
182
- before do
183
- subject . file 'file'
182
+ context 'as file path' do
183
+ let ( :file_path ) { '/some/file/path' }
184
+
185
+ let ( :file_response ) do
186
+ file_body = Grape ::ServeFile ::FileBody . new ( file_path )
187
+ Grape ::ServeFile ::FileResponse . new ( file_body )
188
+ end
189
+
190
+ before do
191
+ subject . file file_path
192
+ end
193
+
194
+ it 'returns value wrapped in FileResponse' do
195
+ expect ( subject . file ) . to eq file_response
196
+ end
184
197
end
185
198
186
- it 'returns value wrapped in FileResponse' do
187
- expect ( subject . file ) . to eq Grape ::Util ::FileResponse . new ( 'file' )
199
+ context 'as object (backward compatibility)' do
200
+ let ( :file_object ) { Class . new }
201
+
202
+ let ( :file_response ) do
203
+ Grape ::ServeFile ::FileResponse . new ( file_object )
204
+ end
205
+
206
+ before do
207
+ subject . file file_object
208
+ end
209
+
210
+ it 'returns value wrapped in FileResponse' do
211
+ expect ( subject . file ) . to eq file_response
212
+ end
188
213
end
189
214
end
190
215
@@ -195,19 +220,21 @@ def initialize
195
220
196
221
describe '#stream' do
197
222
describe 'set' do
223
+ let ( :file_object ) { Class . new }
224
+
198
225
before do
199
226
subject . header 'Cache-Control' , 'cache'
200
227
subject . header 'Content-Length' , 123
201
228
subject . header 'Transfer-Encoding' , 'base64'
202
- subject . stream 'file'
229
+ subject . stream file_object
203
230
end
204
231
205
232
it 'returns value wrapped in FileResponse' do
206
- expect ( subject . stream ) . to eq Grape ::Util ::FileResponse . new ( 'file' )
233
+ expect ( subject . stream ) . to eq Grape ::ServeFile ::FileResponse . new ( file_object )
207
234
end
208
235
209
236
it 'also sets result of file to value wrapped in FileResponse' do
210
- expect ( subject . file ) . to eq Grape ::Util ::FileResponse . new ( 'file' )
237
+ expect ( subject . file ) . to eq Grape ::ServeFile ::FileResponse . new ( file_object )
211
238
end
212
239
213
240
it 'sets Cache-Control header to no-cache' do
0 commit comments