48 lines
924 B
Ruby
48 lines
924 B
Ruby
|
describe QA::Scenario::Actable do
|
||
|
subject do
|
||
|
Class.new do
|
||
|
include QA::Scenario::Actable
|
||
|
|
||
|
attr_accessor :something
|
||
|
|
||
|
def do_something(arg = nil)
|
||
|
"some#{arg}"
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '.act' do
|
||
|
it 'provides means to run steps' do
|
||
|
result = subject.act { do_something }
|
||
|
|
||
|
expect(result).to eq 'some'
|
||
|
end
|
||
|
|
||
|
it 'supports passing variables' do
|
||
|
result = subject.act('thing') do |variable|
|
||
|
do_something(variable)
|
||
|
end
|
||
|
|
||
|
expect(result).to eq 'something'
|
||
|
end
|
||
|
|
||
|
it 'returns value from the last method' do
|
||
|
result = subject.act { 'test' }
|
||
|
|
||
|
expect(result).to eq 'test'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '.perform' do
|
||
|
it 'makes it possible to pass binding' do
|
||
|
variable = 'something'
|
||
|
|
||
|
result = subject.perform do |object|
|
||
|
object.something = variable
|
||
|
end
|
||
|
|
||
|
expect(result).to eq 'something'
|
||
|
end
|
||
|
end
|
||
|
end
|