Sha256: 4c50cc92befe13fb1ac8f58bdc6ea9ac8ab427a4c46e275fef6fe8b1e91bc171

Contents?: true

Size: 1.49 KB

Versions: 8

Compression:

Stored size: 1.49 KB

Contents

# frozen_string_literal: true

require 'cucumber/core/test/result'

module Cucumber
  # Raised when there is no matching StepDefinition for a step.
  class Undefined < Core::Test::Result::Undefined
    def self.from(result, step_name)
      return result.with_message(with_prefix(result.message)) if result.is_a?(self)

      begin
        raise self, with_prefix(step_name)
      rescue StandardError => e
        e
      end
    end

    def self.with_prefix(step_name)
      %(Undefined step: "#{step_name}")
    end
  end

  # Raised when there is no matching StepDefinition for a step called
  # from within another step definition.
  class UndefinedDynamicStep < StandardError
    def initialize(step_name)
      super %(Undefined dynamic step: "#{step_name}")
    end
  end

  # Raised when a StepDefinition's block invokes World#pending
  class Pending < Core::Test::Result::Pending
  end

  # Raised when a step matches 2 or more StepDefinitions
  class Ambiguous < StandardError
    def initialize(step_name, step_definitions, used_guess)
      message = String.new # rubocop:disable Style/EmptyLiteral
      message << "Ambiguous match of \"#{step_name}\":\n\n"
      message << step_definitions.map(&:backtrace_line).join("\n")
      message << "\n\n"
      message << "You can run again with --guess to make Cucumber be more smart about it\n" unless used_guess
      super(message)
    end
  end

  class TagExcess < StandardError
    def initialize(messages)
      super(messages.join("\n"))
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
cucumber-9.0.1 lib/cucumber/errors.rb
cucumber-9.0.0 lib/cucumber/errors.rb
rubypitaya-3.12.5 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/cucumber-8.0.0/lib/cucumber/errors.rb
rubypitaya-3.12.4 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/cucumber-8.0.0/lib/cucumber/errors.rb
rubypitaya-3.12.3 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/cucumber-8.0.0/lib/cucumber/errors.rb
rubypitaya-3.12.2 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/cucumber-8.0.0/lib/cucumber/errors.rb
cucumber-8.0.0 lib/cucumber/errors.rb
cucumber-8.0.0.rc.1 lib/cucumber/errors.rb