Welcome to mirror list, hosted at ThFree Co, Russian Federation.

scenario_spec.rb « runtime « spec « qa - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 175973b679531ad5286bf37b1cbb54dfbb56a8fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# frozen_string_literal: true

RSpec.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