From c4330cb32628627045287b22442cf71600218108 Mon Sep 17 00:00:00 2001 From: Brandon Hilkert Date: Wed, 25 Nov 2015 09:52:22 -0500 Subject: [PATCH] Add test to attempt to recreate Rspec syntax --- test/test_testing_fake.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/test_testing_fake.rb b/test/test_testing_fake.rb index bffd2981..49434804 100644 --- a/test/test_testing_fake.rb +++ b/test/test_testing_fake.rb @@ -315,7 +315,9 @@ class TestTesting < Sidekiq::Test Sidekiq::Queues.clear_all assert_equal 0, Sidekiq::Queues["default"].size + assert_equal 0, QueueWorker.jobs.size assert_equal 0, Sidekiq::Queues["alt"].size + assert_equal 0, AltQueueWorker.jobs.size end it 'finds jobs enqueued by client' do @@ -327,5 +329,18 @@ class TestTesting < Sidekiq::Test assert_equal 1, Sidekiq::Queues["missing"].size end + + it 'respects underlying array changes' do + # Rspec expect change() syntax saves a reference to + # an underlying array. When the array containing jobs is + # derived, Rspec test using `change(QueueWorker.jobs, :size).by(1)` + # won't pass. This attemps to recreate that scenario + # by saving a reference to the jobs array and ensuring + # it changes properly on enqueueing + jobs = QueueWorker.jobs + assert_equal 0, jobs.size + QueueWorker.perform_async(1, 2) + assert_equal 1, jobs.size + end end end