Sha256: 12ecef39f54bfb79ecd9a726b59f0e56ff0fbb8c9437ed5acf555f9c498e3664

Contents?: true

Size: 1.32 KB

Versions: 7

Compression:

Stored size: 1.32 KB

Contents

# PaperTrail is not compatible with sinatra 2 yet. Contributions welcome.
if Gem::Version.new(Rack.release) < Gem::Version.new("2.0.0.alpha")
  require "test_helper"
  require "sinatra/base"

  # --- Tests for modular `Sinatra::Base` style ----
  class BaseApp < Sinatra::Base
    configs = YAML.load_file(File.expand_path("../../dummy/config/database.yml", __FILE__))
    ActiveRecord::Base.configurations = configs
    ActiveRecord::Base.establish_connection(:test)
    register PaperTrail::Sinatra

    get "/test" do
      Widget.create!(name: "foo")
      "Hello"
    end

    def current_user
      @current_user ||= OpenStruct.new(id: "foobar")
    end
  end

  class ModularSinatraTest < ActionDispatch::IntegrationTest
    include Rack::Test::Methods

    def app
      @app ||= BaseApp
    end

    test "baseline" do
      assert_nil Widget.create.versions.first.whodunnit
    end

    context "`PaperTrail::Sinatra` in a `Sinatra::Base` application" do
      should "sets the `user_for_paper_trail` from the `current_user` method" do
        get "/test"
        assert_equal "Hello", last_response.body
        widget = Widget.last
        assert_not_nil widget
        assert_equal "foo", widget.name
        assert_equal 1, widget.versions.size
        assert_equal "foobar", widget.versions.first.whodunnit
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/paper_trail-5.2.3/test/functional/modular_sinatra_test.rb
paper_trail-6.0.2 test/functional/modular_sinatra_test.rb
paper_trail-6.0.1 test/functional/modular_sinatra_test.rb
paper_trail-6.0.0 test/functional/modular_sinatra_test.rb
paper_trail-5.2.3 test/functional/modular_sinatra_test.rb
paper_trail-5.2.2 test/functional/modular_sinatra_test.rb
paper_trail-5.2.1 test/functional/modular_sinatra_test.rb