diff --git a/spec/lib/listen/adapter/linux_spec.rb b/spec/lib/listen/adapter/linux_spec.rb index d87b65ff..7878296b 100644 --- a/spec/lib/listen/adapter/linux_spec.rb +++ b/spec/lib/listen/adapter/linux_spec.rb @@ -15,10 +15,11 @@ before(:all) do require 'rb-inotify' end + let(:dir1) { Pathname.new("/foo/dir1") } - let(:config) { instance_double(Listen::Adapter::Config, "config") } - let(:queue) { instance_double(Queue, "queue") } + let(:queue) { instance_double(Queue, "queue", close: nil) } + let(:config) { instance_double(Listen::Adapter::Config, "config", queue: queue) } let(:silencer) { instance_double(Listen::Silencer, "silencer") } let(:snapshot) { instance_double(Listen::Change, "snapshot") } let(:record) { instance_double(Listen::Record, "record") } @@ -26,6 +27,10 @@ # TODO: fix other adapters too! subject { described_class.new(config) } + after do + subject.stop + end + describe 'watch events' do let(:directories) { [Pathname.pwd] } let(:adapter_options) { {} } @@ -38,8 +43,12 @@ allow(config).to receive(:directories).and_return(directories) 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 @@ -55,6 +64,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) @@ -78,13 +88,13 @@ 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) allow(config).to receive(:directories).and_return(directories) 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(Listen::Record).to receive(:new).with(dir1).and_return(record) @@ -159,8 +169,6 @@ fake_notifier = double(:fake_notifier, new: fake_worker) 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') @@ -168,14 +176,12 @@ end it 'stops the worker' do - expect(fake_worker).to receive(:close) subject.stop end end context 'when not even initialized' do before do - allow(config).to receive(:queue).and_return(queue) allow(queue).to receive(:close) end