Handle Manager logging with events Dispatcher
This commit is contained in:
@@ -12,10 +12,38 @@ module Uh
|
||||
end
|
||||
|
||||
describe '#connect' do
|
||||
let(:block) { proc { } }
|
||||
|
||||
it 'opens the display' do
|
||||
expect(manager.display).to receive :open
|
||||
manager.connect
|
||||
end
|
||||
|
||||
it 'emits :display, :connecting event with the display' do
|
||||
events.on :display, :connecting, &block
|
||||
expect(block).to receive(:call) do |*args|
|
||||
expect(args).to eq [display]
|
||||
end
|
||||
manager.connect
|
||||
end
|
||||
|
||||
it 'emits :display, :connected event with the display' do
|
||||
events.on :display, :connected, &block
|
||||
expect(block).to receive(:call) do |*args|
|
||||
expect(args).to eq [display]
|
||||
end
|
||||
manager.connect
|
||||
end
|
||||
|
||||
context 'when connection fails' do
|
||||
before { allow(display).to receive(:open) { fail } }
|
||||
|
||||
it 'does not emit :display, :connected event' do
|
||||
events.on :display, :connected, &block
|
||||
expect(block).not_to receive :call
|
||||
manager.connect rescue nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#grab_key' do
|
||||
|
@@ -76,6 +76,14 @@ module Uh
|
||||
end
|
||||
|
||||
describe '#register_event_hooks' do
|
||||
context 'manager' do
|
||||
it 'registers manager event hooks' do
|
||||
runner.register_event_hooks
|
||||
expect(runner.events[:display, :connecting]).not_to be_empty
|
||||
expect(runner.events[:display, :connected]).not_to be_empty
|
||||
end
|
||||
end
|
||||
|
||||
context 'key bindings' do
|
||||
it 'registers key bindings event hooks' do
|
||||
runner.register_event_hooks
|
||||
@@ -93,11 +101,6 @@ module Uh
|
||||
runner.connect_manager
|
||||
end
|
||||
|
||||
it 'logs a message when connected' do
|
||||
expect(env).to receive(:log).with /connected/i
|
||||
runner.connect_manager
|
||||
end
|
||||
|
||||
it 'tells the manager to grab keys' do
|
||||
expect(runner.manager).to receive(:grab_key).with :q
|
||||
runner.connect_manager
|
||||
|
Reference in New Issue
Block a user