lib/gitlab/qa/runtime/scenario.rb (23 lines of code) (raw):

# 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