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
|
||||
|
||||
attr_reader :env, :events, :manager
|
||||
attr_reader :env, :events, :manager, :layout
|
||||
|
||||
def initialize env, manager: nil, stopped: false
|
||||
raise ArgumentError, 'missing env layout class' unless env.layout_class
|
||||
@env = env
|
||||
@events = Dispatcher.new
|
||||
@manager = manager || Manager.new(@events)
|
||||
@layout = @env.layout_class.new
|
||||
@stopped = stopped
|
||||
end
|
||||
|
||||
|
@ -1,7 +1,11 @@
|
||||
SomeLayout = Class.new
|
||||
|
||||
module Uh
|
||||
module WM
|
||||
RSpec.describe Runner do
|
||||
let(:env) { Env.new(StringIO.new) }
|
||||
let(:env) do
|
||||
Env.new(StringIO.new).tap { |o| o.layout_class = SomeLayout }
|
||||
end
|
||||
subject(:runner) { described_class.new env }
|
||||
|
||||
describe '.run' do
|
||||
@ -49,6 +53,17 @@ module Uh
|
||||
it 'is not stopped' do
|
||||
expect(runner).not_to be_stopped
|
||||
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
|
||||
|
||||
describe '#stopped?' do
|
||||
|
Loading…
x
Reference in New Issue
Block a user