File: scenario_spec.rb

package info (click to toggle)
gitlab 17.6.5-19
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 629,368 kB
  • sloc: ruby: 1,915,304; javascript: 557,307; sql: 60,639; xml: 6,509; sh: 4,567; makefile: 1,239; python: 406
file content (37 lines) | stat: -rw-r--r-- 1,145 bytes parent folder | download
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