Sha256: 453d7aad7de477714c0f58b8500926bb86dbd07bd9d72ab36f4c6231e9c38c39

Contents?: true

Size: 1.18 KB

Versions: 55

Compression:

Stored size: 1.18 KB

Contents

require 'singleton'

class SharedContextBuilder
  include Singleton

  def build name, acceptance_test
    throw "rspec library is not available" unless defined? RSpec

    parent = self

    acceptance_test_lambda = lambda do
      parent.configure_rspec acceptance_test, self
    end

    RSpec.shared_context name do
      self.define_singleton_method(:include_context, acceptance_test_lambda)

      include_context
    end
  end

  def configure_rspec acceptance_test, object=nil
    # acceptance_test = self

    # if object
    #   if object.kind_of? RSpec::Core::Example
    #     rspec_conf = object.example_group.parent_groups.last
    #   else
    #     rspec_conf = object
    #   end
    # else
    #   rspec_conf = RSpec.configuration
    # end

    rspec_conf = object

    rspec_conf.around(:each) do |example|
      old_driver = Capybara.current_driver

      acceptance_test.setup(page, example.metadata)

      new_driver = Capybara.current_driver

      if old_driver != new_driver
        example.metadata.delete(old_driver)
        example.metadata[new_driver] = true
      end

      example.run

      acceptance_test.teardown(page, example.metadata, example.exception)
    end
  end

end

Version data entries

55 entries across 55 versions & 1 rubygems

Version Path
acceptance_test-1.11.7 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.11.6 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.11.5 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.11.4 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.11.3 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.11.2 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.11.1 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.11.0 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.10.12 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.10.11 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.10.10 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.10.9 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.10.8 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.10.7 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.10.6 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.10.5 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.10.4 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.10.3 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.10.2 lib/acceptance_test/shared_context_builder.rb
acceptance_test-1.10.1 lib/acceptance_test/shared_context_builder.rb