2019-07-31 22:56:46 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2018-03-17 18:26:18 +05:30
|
|
|
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
|
|
|
|
|
2019-07-07 11:18:12 +05:30
|
|
|
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
|
|
|
|
|
2018-03-17 18:26:18 +05:30
|
|
|
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
|