diff --git a/lib/uh/wm/manager.rb b/lib/uh/wm/manager.rb index 1845365..0148d8a 100644 --- a/lib/uh/wm/manager.rb +++ b/lib/uh/wm/manager.rb @@ -21,6 +21,9 @@ module Uh end def handle event + case event.type + when :key_press then @events.emit :key, event.key.to_sym + end end end end diff --git a/spec/uh/wm/manager_spec.rb b/spec/uh/wm/manager_spec.rb index f145a2f..032a40b 100644 --- a/spec/uh/wm/manager_spec.rb +++ b/spec/uh/wm/manager_spec.rb @@ -55,7 +55,14 @@ module Uh end describe '#handle' do - it 'handles an event' + context 'when key_release event is given' do + let(:event) { double 'event', type: :key_press, key: 'q' } + + it 'emits :key event with the corresponding key' do + events.on(:key, :q) { throw :key_press_code } + expect { manager.handle event }.to throw_symbol :key_press_code + end + end end end end