Sha256: 94f058d86606236889ccd1bf129cd50f6c2b39eeb32dec5b893df486bc0b089b

Contents?: true

Size: 1.51 KB

Versions: 4

Compression:

Stored size: 1.51 KB

Contents

require_relative "test_helper"

module TheTruth
  def test_original_state
    @controller.current_user = @impersonator

    assert_equal @impersonator, @controller.true_user
    assert_equal @impersonator, @controller.current_user
  end

  def test_impersonates
    @controller.current_user = @impersonator
    @controller.impersonate_user @impersonated

    assert_equal @impersonator, @controller.true_user
    assert_equal @impersonated, @controller.current_user
  end

  def test_impersonated_state
    @controller.current_user = @impersonator
    @controller.session[:impersonated_user_id] = @impersonated.id

    assert_equal @impersonator, @controller.true_user
    assert_equal @impersonated, @controller.current_user
  end

  def test_stops_impersonating
    @controller.current_user = @impersonator
    @controller.session[:impersonated_user_id] = @impersonated.id
    @controller.stop_impersonating_user

    assert_equal @impersonator, @controller.true_user
    assert_equal @impersonator, @controller.current_user
  end
end

class PretenderTest < Minitest::Test
  include TheTruth

  def setup
    @impersonator = User.new("impersonator")
    @impersonated = User.new("impersonated")
    @controller = ApplicationController.new
  end
end

class SuperPretenderTest < Minitest::Test
  include TheTruth

  def setup
    @impersonator = User.new("impersonator")
    @impersonated = User.new("impersonated")
    @controller = ApplicationController.new
    class << @controller
      def current_user
        super
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pretender-0.3.1 test/pretender_test.rb
pretender-0.3.0 test/pretender_test.rb
pretender-0.2.1 test/pretender_test.rb
pretender-0.2.0 test/pretender_test.rb