67c38a6573
First attempt at allowing a feature flag to be set via the command line when running tests. This will enable the flag, run the tests, and then disable the flag. Using OptionParser meant changing how scenarios get the instance address, so this also allows the address to be set as a command line option. It's backwards compatible (you can still provide the address as the command line option after the scenario)
35 lines
1.1 KiB
Ruby
35 lines
1.1 KiB
Ruby
describe QA::Runtime::Scenario do
|
|
subject do
|
|
Module.new.extend(described_class)
|
|
end
|
|
|
|
it 'makes it possible to define global scenario attributes' do
|
|
subject.define(:my_attribute, 'some-value')
|
|
subject.define(:another_attribute, 'another-value')
|
|
|
|
expect(subject.my_attribute).to eq 'some-value'
|
|
expect(subject.another_attribute).to eq 'another-value'
|
|
expect(subject.attributes)
|
|
.to eq(my_attribute: 'some-value', another_attribute: 'another-value')
|
|
end
|
|
|
|
it 'replaces an existing attribute' do
|
|
subject.define(:my_attribute, 'some-value')
|
|
subject.define(:my_attribute, 'another-value')
|
|
|
|
expect(subject.my_attribute).to eq 'another-value'
|
|
expect(subject.attributes).to eq(my_attribute: 'another-value')
|
|
end
|
|
|
|
it 'raises error when attribute is not known' do
|
|
expect { subject.invalid_accessor }
|
|
.to raise_error ArgumentError, /invalid_accessor/
|
|
end
|
|
|
|
it 'raises error when attribute is empty' do
|
|
subject.define(:empty_attribute, '')
|
|
|
|
expect { subject.empty_attribute }
|
|
.to raise_error ArgumentError, /empty_attribute/
|
|
end
|
|
end
|