Implement `modifier' run control keyword
This commit is contained in:
@@ -21,6 +21,10 @@ module Uh
|
||||
expect(env.layout_class).not_to be
|
||||
end
|
||||
|
||||
it 'has the default modifier set' do
|
||||
expect(env.modifier).to eq :mod1
|
||||
end
|
||||
|
||||
it 'has defaults key bindings set' do
|
||||
expect(env.keybinds.keys).to eq %i[q]
|
||||
end
|
||||
|
@@ -2,8 +2,9 @@ module Uh
|
||||
module WM
|
||||
RSpec.describe Manager do
|
||||
let(:events) { Dispatcher.new }
|
||||
let(:modifier) { :mod1 }
|
||||
let(:display) { Display.new }
|
||||
subject(:manager) { described_class.new events, display }
|
||||
subject(:manager) { described_class.new events, modifier, display }
|
||||
|
||||
it 'has a new display' do
|
||||
expect(manager.display).to be_a Display
|
||||
@@ -47,7 +48,7 @@ module Uh
|
||||
describe '#grab_key' do
|
||||
it 'grabs given key on the display' do
|
||||
expect(manager.display)
|
||||
.to receive(:grab_key).with('f', KEY_MODIFIERS[:mod1])
|
||||
.to receive(:grab_key).with('f', KEY_MODIFIERS[modifier])
|
||||
manager.grab_key :f
|
||||
end
|
||||
|
||||
@@ -55,7 +56,7 @@ module Uh
|
||||
it 'grabs the key with given modifier' do
|
||||
expect(manager.display)
|
||||
.to receive(:grab_key)
|
||||
.with('f', KEY_MODIFIERS[:mod1] | KEY_MODIFIERS[:shift])
|
||||
.with('f', KEY_MODIFIERS[modifier] | KEY_MODIFIERS[:shift])
|
||||
manager.grab_key :f, :shift
|
||||
end
|
||||
end
|
||||
@@ -91,7 +92,7 @@ module Uh
|
||||
|
||||
describe '#handle' do
|
||||
context 'when key_press event is given' do
|
||||
let(:mod_mask) { KEY_MODIFIERS[:mod1] }
|
||||
let(:mod_mask) { KEY_MODIFIERS[modifier] }
|
||||
let(:event) do
|
||||
double 'event',
|
||||
type: :key_press,
|
||||
@@ -105,7 +106,7 @@ module Uh
|
||||
end
|
||||
|
||||
context 'whith shift key modifier' do
|
||||
let(:mod_mask) { KEY_MODIFIERS[:mod1] | KEY_MODIFIERS[:shift] }
|
||||
let(:mod_mask) { KEY_MODIFIERS[modifier] | KEY_MODIFIERS[:shift] }
|
||||
|
||||
it 'emits :key event with the corresponding key and :shift' do
|
||||
events.on(:key, :f, :shift) { throw :key_press_code }
|
||||
|
@@ -50,6 +50,13 @@ module Uh
|
||||
end
|
||||
end
|
||||
|
||||
describe '#modifier' do
|
||||
it 'updates env modifier' do
|
||||
rc.modifier :ctrl
|
||||
expect(env.modifier).to eq :ctrl
|
||||
end
|
||||
end
|
||||
|
||||
describe '#key' do
|
||||
let(:code) { -> { :keybind_code } }
|
||||
|
||||
|
@@ -21,10 +21,6 @@ module Uh
|
||||
expect(runner.events).to be_a Dispatcher
|
||||
end
|
||||
|
||||
it 'has a manager' do
|
||||
expect(runner.manager).to be_a Manager
|
||||
end
|
||||
|
||||
it 'is not stopped' do
|
||||
expect(runner).not_to be_stopped
|
||||
end
|
||||
@@ -53,6 +49,16 @@ module Uh
|
||||
end
|
||||
end
|
||||
|
||||
describe '#manager' do
|
||||
it 'returns the manager' do
|
||||
expect(runner.manager).to be_a Manager
|
||||
end
|
||||
|
||||
it 'sets the manager modifier as env modifier' do
|
||||
expect(runner.manager.modifier).to eq env.modifier
|
||||
end
|
||||
end
|
||||
|
||||
describe '#evaluate_run_control' do
|
||||
it 'evaluates the run control file with RunControl and current env' do
|
||||
expect(RunControl).to receive(:evaluate).with env
|
||||
|
Reference in New Issue
Block a user