2019-04-11 08:02:24 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2020-09-24 23:09:30 -04:00
|
|
|
RSpec.describe QA::Scenario::Bootable do
|
2017-11-09 06:53:57 -05:00
|
|
|
subject do
|
|
|
|
Class.new(QA::Scenario::Template)
|
|
|
|
.include(described_class)
|
|
|
|
end
|
|
|
|
|
2019-03-27 15:03:03 -04:00
|
|
|
before do
|
|
|
|
allow(subject).to receive(:options).and_return([])
|
|
|
|
allow(QA::Runtime::Scenario).to receive(:attributes).and_return({})
|
|
|
|
end
|
|
|
|
|
2017-11-09 06:53:57 -05:00
|
|
|
it 'makes it possible to define the scenario attribute' do
|
|
|
|
subject.class_eval do
|
|
|
|
attribute :something, '--something SOMETHING', 'Some attribute'
|
|
|
|
attribute :another, '--another ANOTHER', 'Some other attribute'
|
|
|
|
end
|
|
|
|
|
2019-03-27 15:03:03 -04:00
|
|
|
# If we run just this test from the command line it fails unless
|
|
|
|
# we include the command line args that we use to select this test.
|
2017-11-09 06:53:57 -05:00
|
|
|
expect(subject).to receive(:perform)
|
2019-03-27 15:03:03 -04:00
|
|
|
.with({ something: 'test', another: 'other' })
|
2017-11-09 06:53:57 -05:00
|
|
|
|
|
|
|
subject.launch!(%w[--another other --something test])
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'does not require attributes to be defined' do
|
|
|
|
expect(subject).to receive(:perform).with('some', 'argv')
|
|
|
|
|
|
|
|
subject.launch!(%w[some argv])
|
|
|
|
end
|
|
|
|
end
|