Sha256: 60feadf4dc8cdaa72499d9dca72d120e66128036839d2452d0a6c5f3530585e3

Contents?: true

Size: 741 Bytes

Versions: 43

Compression:

Stored size: 741 Bytes

Contents

# frozen_string_literal: true

module Gitlab
  module QA
    module Runtime
      ##
      # Singleton approach to global test scenario arguments.
      #
      module Scenario
        extend self

        def attributes
          @attributes ||= {}
        end

        def define(attribute, value)
          attributes.store(attribute.to_sym, value)

          define_singleton_method(attribute) do
            attributes[attribute.to_sym].tap do |value|
              raise ArgumentError, "Empty `#{attribute}` attribute!" if value.to_s.empty?
            end
          end
        end

        def method_missing(name, *)
          raise ArgumentError, "Scenario attribute `#{name}` not defined!"
        end
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
gitlab-qa-15.2.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-15.1.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-15.0.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.21.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.20.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.19.2 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.19.1 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.19.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.18.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.17.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.16.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.15.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.14.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.13.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.12.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.11.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.9.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.8.1 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.8.0 lib/gitlab/qa/runtime/scenario.rb
gitlab-qa-14.7.0 lib/gitlab/qa/runtime/scenario.rb