@@ -166,12 +166,12 @@ module VCAP::CloudController
166
166
167
167
describe '#run_action_user' do
168
168
let ( :task ) { TaskModel . make ( app : parent_app , droplet : droplet , state : TaskModel ::SUCCEEDED_STATE ) }
169
- let ( :droplet ) { DropletModel . make }
169
+ let ( :droplet ) { DropletModel . make ( app : parent_app ) }
170
170
171
171
context 'when the task belongs to a CNB lifecycle app' do
172
172
let ( :parent_app ) { AppModel . make ( :cnb ) }
173
173
let ( :task ) { TaskModel . make ( app : parent_app , droplet : droplet , state : TaskModel ::SUCCEEDED_STATE ) }
174
- let ( :droplet ) { DropletModel . make ( :cnb ) }
174
+ let ( :droplet ) { DropletModel . make ( :cnb , app : parent_app ) }
175
175
176
176
context 'when the task has a user specified' do
177
177
before do
@@ -197,8 +197,8 @@ module VCAP::CloudController
197
197
context 'when the task belongs to a Docker lifecycle app' do
198
198
let ( :parent_app ) { AppModel . make ( :docker ) }
199
199
let ( :task ) { TaskModel . make ( app : parent_app , droplet : droplet , state : TaskModel ::SUCCEEDED_STATE ) }
200
- let ( :droplet ) { DropletModel . make ( :docker ) }
201
- let ( :droplet_execution_metadata ) { '{"entrypoint":["/image-entrypoint.sh"],"user":"cnb "}' }
200
+ let ( :droplet ) { DropletModel . make ( :docker , app : parent_app ) }
201
+ let ( :droplet_execution_metadata ) { '{"entrypoint":["/image-entrypoint.sh"],"user":"some-user "}' }
202
202
203
203
before do
204
204
task . droplet . update ( execution_metadata : droplet_execution_metadata )
@@ -216,7 +216,7 @@ module VCAP::CloudController
216
216
217
217
context 'when the droplet execution metadata specifies a user' do
218
218
it 'returns the specified user' do
219
- expect ( task . run_action_user ) . to eq ( 'cnb ' )
219
+ expect ( task . run_action_user ) . to eq ( 'some-user ' )
220
220
end
221
221
end
222
222
@@ -268,6 +268,91 @@ module VCAP::CloudController
268
268
it 'returns the default "vcap" user' do
269
269
expect ( task . run_action_user ) . to eq ( 'vcap' )
270
270
end
271
+
272
+ context 'when there is no droplet for the task' do
273
+ before do
274
+ task . droplet . delete
275
+ task . reload
276
+ end
277
+
278
+ it 'returns vcap' do
279
+ expect ( task . run_action_user ) . to eq ( 'vcap' )
280
+ end
281
+ end
282
+ end
283
+ end
284
+ end
285
+
286
+ describe 'docker?' do
287
+ context 'when there is a droplet and it has the docker lifecycle' do
288
+ let ( :parent_app ) { AppModel . make ( :docker ) }
289
+ let ( :task ) { TaskModel . make ( app : parent_app , droplet : droplet , state : TaskModel ::SUCCEEDED_STATE ) }
290
+ let ( :droplet ) { DropletModel . make ( :docker , app : parent_app ) }
291
+
292
+ it 'returns true' do
293
+ expect ( task . docker? ) . to be ( true )
294
+ end
295
+ end
296
+
297
+ context 'when there is a droplet and it does not have the docker lifecycle' do
298
+ let ( :parent_app ) { AppModel . make ( :docker ) }
299
+ let ( :task ) { TaskModel . make ( app : parent_app , droplet : droplet , state : TaskModel ::SUCCEEDED_STATE ) }
300
+ let ( :droplet ) { DropletModel . make ( :buildpack , app : parent_app ) }
301
+
302
+ it 'returns false' do
303
+ expect ( task . docker? ) . to be ( false )
304
+ end
305
+ end
306
+
307
+ context 'when there is not a droplet for the task' do
308
+ let ( :parent_app ) { AppModel . make ( :docker ) }
309
+ let ( :task ) { TaskModel . make ( app : parent_app , droplet : droplet , state : TaskModel ::SUCCEEDED_STATE ) }
310
+ let ( :droplet ) { DropletModel . make ( :docker , app : parent_app ) }
311
+
312
+ before do
313
+ task . droplet . delete
314
+ task . reload
315
+ end
316
+
317
+ it 'returns false' do
318
+ expect ( task . docker? ) . to be ( false )
319
+ end
320
+ end
321
+ end
322
+
323
+ describe 'cnb?' do
324
+ context 'when there is a droplet and it has the cnb lifecycle' do
325
+ let ( :parent_app ) { AppModel . make ( :cnb ) }
326
+ let ( :task ) { TaskModel . make ( app : parent_app , droplet : droplet , state : TaskModel ::SUCCEEDED_STATE ) }
327
+ let ( :droplet ) { DropletModel . make ( :cnb , app : parent_app ) }
328
+
329
+ it 'returns true' do
330
+ expect ( task . cnb? ) . to be ( true )
331
+ end
332
+ end
333
+
334
+ context 'when there is a droplet and it does not have the cnb lifecycle' do
335
+ let ( :parent_app ) { AppModel . make ( :cnb ) }
336
+ let ( :task ) { TaskModel . make ( app : parent_app , droplet : droplet , state : TaskModel ::SUCCEEDED_STATE ) }
337
+ let ( :droplet ) { DropletModel . make ( :buildpack , app : parent_app ) }
338
+
339
+ it 'returns false' do
340
+ expect ( task . cnb? ) . to be ( false )
341
+ end
342
+ end
343
+
344
+ context 'when there is not a droplet for the task' do
345
+ let ( :parent_app ) { AppModel . make ( :cnb ) }
346
+ let ( :task ) { TaskModel . make ( app : parent_app , droplet : droplet , state : TaskModel ::SUCCEEDED_STATE ) }
347
+ let ( :droplet ) { DropletModel . make ( :cnb , app : parent_app ) }
348
+
349
+ before do
350
+ task . droplet . delete
351
+ task . reload
352
+ end
353
+
354
+ it 'returns false' do
355
+ expect ( task . cnb? ) . to be ( false )
271
356
end
272
357
end
273
358
end
0 commit comments