@@ -52,6 +52,7 @@ module V3
5252
5353 let ( :pollable_job ) {
5454 pollable_job = Jobs ::Enqueuer . new ( fake_job , { queue : Jobs ::Queues . generic , run_at : Delayed ::Job . db_time_now } ) . enqueue_pollable
55+ execute_all_jobs ( expected_successes : 1 , expected_failures : 0 )
5556 pollable_job . update ( state : PollableJobModel ::POLLING_STATE )
5657 }
5758 let ( :pollable_job_guid ) { pollable_job . guid }
@@ -62,11 +63,10 @@ module V3
6263 request_attrs : request_attrs ,
6364 pollable_job_guid : pollable_job_guid ,
6465 user_audit_info : user_audit_info ,
65- )
66+ )
6667 end
6768
6869 def enqueue ( job )
69- execute_all_jobs ( expected_successes : 1 , expected_failures : 0 )
7070 delayed_job = Jobs ::Enqueuer . new ( job , { queue : Jobs ::Queues . generic , run_at : Delayed ::Job . db_time_now } ) . enqueue
7171 pollable_job . update ( delayed_job_guid : delayed_job . guid )
7272 end
@@ -425,6 +425,39 @@ def run_job(job, successes: 1, failures: 0)
425425 end
426426 end
427427 end
428+
429+ include_examples 'when brokers return Retry-After header' , :fetch_service_instance_last_operation
430+
431+ context 'when the poll_interval is changed after the job was created' do
432+ let ( :default_polling_interval ) { VCAP ::CloudController ::Config . config . get ( :broker_client_default_async_poll_interval_seconds ) }
433+ let ( :new_polling_interval ) { default_polling_interval * 2 }
434+ let ( :state ) { 'in progress' }
435+
436+ before do
437+ expect ( job . poll_interval ) . to eq ( default_polling_interval )
438+ expect ( default_polling_interval ) . not_to eq ( new_polling_interval )
439+ TestConfig . override ( broker_client_default_async_poll_interval_seconds : new_polling_interval )
440+ end
441+
442+ it 'updates the poll interval after the next run' do
443+ Timecop . freeze ( Time . now )
444+ first_run_time = Time . now
445+
446+ Jobs ::Enqueuer . new ( job , { queue : Jobs ::Queues . generic , run_at : first_run_time } ) . enqueue
447+ execute_all_jobs ( expected_successes : 1 , expected_failures : 0 )
448+ expect ( Delayed ::Job . count ) . to eq ( 1 )
449+
450+ old_next_run_time = first_run_time + default_polling_interval . seconds + 1 . second
451+ Timecop . travel ( old_next_run_time ) do
452+ execute_all_jobs ( expected_successes : 0 , expected_failures : 0 )
453+ end
454+
455+ new_next_run_time = first_run_time + new_polling_interval . seconds + 1 . second
456+ Timecop . travel ( new_next_run_time ) do
457+ execute_all_jobs ( expected_successes : 1 , expected_failures : 0 )
458+ end
459+ end
460+ end
428461 end
429462
430463 context 'when the service instance has been purged' do
@@ -535,39 +568,6 @@ def run_job(job, successes: 1, failures: 0)
535568 end
536569 end
537570 end
538-
539- context 'when the poll_interval is changed after the job was created' do
540- let ( :default_polling_interval ) { VCAP ::CloudController ::Config . config . get ( :broker_client_default_async_poll_interval_seconds ) }
541- let ( :new_polling_interval ) { default_polling_interval * 2 }
542- let ( :state ) { 'in progress' }
543-
544- before do
545- expect ( job . poll_interval ) . to eq ( default_polling_interval )
546- expect ( default_polling_interval ) . not_to eq ( new_polling_interval )
547- TestConfig . override ( broker_client_default_async_poll_interval_seconds : new_polling_interval )
548- end
549-
550- it 'updates the poll interval after the next run' do
551- Timecop . freeze ( Time . now )
552- first_run_time = Time . now
553-
554- Jobs ::Enqueuer . new ( job , { queue : Jobs ::Queues . generic , run_at : first_run_time } ) . enqueue
555- execute_all_jobs ( expected_successes : 1 , expected_failures : 0 )
556- expect ( Delayed ::Job . count ) . to eq ( 1 )
557-
558- old_next_run_time = first_run_time + default_polling_interval . seconds + 1 . second
559- Timecop . travel ( old_next_run_time ) do
560- execute_all_jobs ( expected_successes : 0 , expected_failures : 0 )
561- end
562-
563- new_next_run_time = first_run_time + new_polling_interval . seconds + 1 . second
564- Timecop . travel ( new_next_run_time ) do
565- execute_all_jobs ( expected_successes : 1 , expected_failures : 0 )
566- end
567- end
568- end
569-
570- include_examples 'when brokers return Retry-After header' , :fetch_service_instance_last_operation
571571 end
572572 end
573573 end
0 commit comments