Sha256: ed5288058855f22c39cbc604b8885e67e7c5f1e475377bbd9119f1ba1d8aa1be

Contents?: true

Size: 966 Bytes

Versions: 8

Compression:

Stored size: 966 Bytes

Contents

require 'spec_helper'

RSpec.describe Airbrake::Rack::UserFilter do
  def env_for(url, opts = {})
    Rack::MockRequest.env_for(url, opts)
  end

  let(:notice) do
    Airbrake.build_notice('oops').tap do |notice|
      notice.stash[:rack_request] = Rack::Request.new(env_for('/', {}))
    end
  end

  let(:user_payload) { { username: 'bingo' } }
  let(:user) { Airbrake::Rack::User.new(double(user_payload)) }

  it "delegates extraction of the current user information" do
    expect(Airbrake::Rack::User).to receive(:extract).and_return(user)
    subject.call(notice)
    expect(notice[:context][:user]).to eq(user_payload)
  end

  context "when no current user is found" do
    let(:user) { Airbrake::Rack::User.new(double) }

    it "does not include the user key in the payload" do
      expect(Airbrake::Rack::User).to receive(:extract).and_return(user)
      subject.call(notice)
      expect(notice[:context].keys).not_to include(:user)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
airbrake-8.2.1 spec/unit/rack/user_filter_spec.rb
airbrake-8.2.0 spec/unit/rack/user_filter_spec.rb
airbrake-8.1.4 spec/unit/rack/user_filter_spec.rb
airbrake-8.1.3 spec/unit/rack/user_filter_spec.rb
airbrake-8.1.2 spec/unit/rack/user_filter_spec.rb
airbrake-8.1.1 spec/unit/rack/user_filter_spec.rb
airbrake-8.1.0 spec/unit/rack/user_filter_spec.rb
airbrake-8.0.1 spec/unit/rack/user_filter_spec.rb