Instantiate and assign a Layout in the Runner
This commit is contained in:
parent
b65e989c38
commit
a848e6b936
@ -10,12 +10,14 @@ module Uh
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
attr_reader :env, :events, :manager
|
attr_reader :env, :events, :manager, :layout
|
||||||
|
|
||||||
def initialize env, manager: nil, stopped: false
|
def initialize env, manager: nil, stopped: false
|
||||||
|
raise ArgumentError, 'missing env layout class' unless env.layout_class
|
||||||
@env = env
|
@env = env
|
||||||
@events = Dispatcher.new
|
@events = Dispatcher.new
|
||||||
@manager = manager || Manager.new(@events)
|
@manager = manager || Manager.new(@events)
|
||||||
|
@layout = @env.layout_class.new
|
||||||
@stopped = stopped
|
@stopped = stopped
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
|
SomeLayout = Class.new
|
||||||
|
|
||||||
module Uh
|
module Uh
|
||||||
module WM
|
module WM
|
||||||
RSpec.describe Runner do
|
RSpec.describe Runner do
|
||||||
let(:env) { Env.new(StringIO.new) }
|
let(:env) do
|
||||||
subject(:runner) { described_class.new env }
|
Env.new(StringIO.new).tap { |o| o.layout_class = SomeLayout }
|
||||||
|
end
|
||||||
|
subject(:runner) { described_class.new env }
|
||||||
|
|
||||||
describe '.run' do
|
describe '.run' do
|
||||||
subject(:run) { described_class.run env, stopped: true }
|
subject(:run) { described_class.run env, stopped: true }
|
||||||
@ -49,6 +53,17 @@ module Uh
|
|||||||
it 'is not stopped' do
|
it 'is not stopped' do
|
||||||
expect(runner).not_to be_stopped
|
expect(runner).not_to be_stopped
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'assigns a new layout instance' do
|
||||||
|
expect(runner.layout).to be_an_instance_of SomeLayout
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when the env has no layout set' do
|
||||||
|
before { env.layout_class = nil }
|
||||||
|
it 'raises an ArgumentError' do
|
||||||
|
expect { runner }.to raise_error WM::ArgumentError
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#stopped?' do
|
describe '#stopped?' do
|
||||||
|
Loading…
x
Reference in New Issue
Block a user