Sha256: 545319541192654961c5cb13037f09bbaf3fde94242881a61623cc3b3441ea1a

Contents?: true

Size: 1.32 KB

Versions: 13

Compression:

Stored size: 1.32 KB

Contents

require 'rspec/core'
require 'mediawiki_selenium'
require 'mediawiki_selenium/rspec/features'

module MediawikiSelenium
  module RSpec
    # Returns a name for the given example metadata, derived from its example
    # groups and description.
    #
    # @param metadata [RSpec::Core::Metadata, Hash] Base or nested metadata.
    #
    # @return [String]
    #
    def self.example_name(metadata)
      name = metadata[:example_group] ? "#{example_name(metadata[:example_group])} " : ''
      name += metadata[:description_args].first.to_s if metadata[:description_args].any?
      name
    end

    # Returns a status for the given RSpec example result.
    #
    # @param result [Object] Result of `example.run`.
    #
    # @return [:passed, :failed, :skipped]
    #
    def self.example_status(result)
      case result
      when Exception
        :failed
      when String
        :skipped
      else
        :passed
      end
    end

    autoload :Environment, 'mediawiki_selenium/rspec/environment'
  end
end

RSpec.configure do |config|
  config.include MediawikiSelenium::RSpec::Environment

  config.around(:each) do |example|
    name = MediawikiSelenium::RSpec.example_name(example.metadata)

    mw.setup(name: name)
    result = example.run
    mw.teardown(name: name, status: MediawikiSelenium::RSpec.example_status(result))
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
mediawiki_selenium-1.8.1 lib/mediawiki_selenium/rspec.rb
mediawiki_selenium-1.8.0 lib/mediawiki_selenium/rspec.rb
mediawiki_selenium-1.7.4 lib/mediawiki_selenium/rspec.rb
mediawiki_selenium-1.7.3 lib/mediawiki_selenium/rspec.rb
mediawiki_selenium-1.7.2 lib/mediawiki_selenium/rspec.rb
mediawiki_selenium-1.7.1 lib/mediawiki_selenium/rspec.rb
mediawiki_selenium-1.7.0 lib/mediawiki_selenium/rspec.rb
mediawiki_selenium-1.6.5 lib/mediawiki_selenium/rspec.rb
mediawiki_selenium-1.6.4 lib/mediawiki_selenium/rspec.rb
mediawiki_selenium-1.6.3 lib/mediawiki_selenium/rspec.rb
mediawiki_selenium-1.6.2 lib/mediawiki_selenium/rspec.rb
mediawiki_selenium-1.6.1 lib/mediawiki_selenium/rspec.rb
mediawiki_selenium-1.6.0 lib/mediawiki_selenium/rspec.rb