Skip to content

Commit

Permalink
issue #533: subject.stop so thread cannot keep running and lead to ra…
Browse files Browse the repository at this point in the history
…ise_expired_test_double_error
  • Loading branch information
ColinDKelley committed Mar 21, 2021
1 parent c24d860 commit f13a358
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions spec/lib/listen/adapter/linux_spec.rb
Expand Up @@ -15,6 +15,7 @@
before(:all) do
require 'rb-inotify'
end

let(:dir1) { Pathname.new("/foo/dir1") }

let(:config) { instance_double(Listen::Adapter::Config, "config") }
Expand All @@ -26,6 +27,14 @@
# TODO: fix other adapters too!
subject { described_class.new(config) }

before do
allow(queue).to receive(:close)
end

after do
subject.stop
end

describe 'watch events' do
let(:directories) { [Pathname.pwd] }
let(:adapter_options) { {} }
Expand All @@ -40,6 +49,11 @@
allow(config).to receive(:adapter_options).and_return(adapter_options)
allow(config).to receive(:queue).and_return(queue)
allow(config).to receive(:silencer).and_return(silencer)
allow(fake_worker).to receive(:close)
end

after do
subject.stop
end

it 'starts by calling watch with default events' do
Expand All @@ -55,6 +69,7 @@
before do
fake_worker = double(:fake_worker_for_inotify_limit_message)
allow(fake_worker).to receive(:watch).and_raise(Errno::ENOSPC)
allow(fake_worker).to receive(:close)

fake_notifier = double(:fake_notifier, new: fake_worker)
stub_const('INotify::Notifier', fake_notifier)
Expand All @@ -78,6 +93,7 @@
fake_worker = double(:fake_worker_for_callback)
events = [:recursive, :close_write]
allow(fake_worker).to receive(:watch).with('/foo/dir1', *events)
allow(fake_worker).to receive(:close)

fake_notifier = double(:fake_notifier, new: fake_worker)
stub_const('INotify::Notifier', fake_notifier)
Expand Down Expand Up @@ -160,15 +176,13 @@
stub_const('INotify::Notifier', fake_notifier)

allow(config).to receive(:queue).and_return(queue)
allow(queue).to receive(:close)
allow(config).to receive(:silencer).and_return(silencer)

allow(subject).to receive(:require).with('rb-inotify')
subject.configure
end

it 'stops the worker' do
expect(fake_worker).to receive(:close)
subject.stop
end
end
Expand Down

0 comments on commit f13a358

Please sign in to comment.