spec/unit/rack/user_spec.rb in airbrake-5.6.0 vs spec/unit/rack/user_spec.rb in airbrake-5.6.1
- old
+ new
@@ -50,28 +50,92 @@
expect(retval).to be_nil
end
end
context "when the current_user Rails controller method is defined" do
+ let(:controller) { instance_double('DummyController') }
+ let(:env) { env_for('/', 'action_controller.instance' => controller) }
+
context "and it is nil" do
it "returns nil" do
- controller = instance_double('DummyController')
- env = env_for('/', 'action_controller.instance' => controller)
allow(controller).to receive(:current_user) { nil }
retval = described_class.extract(env)
expect(retval).to be_nil
end
end
context "and it is not nil" do
it "returns the wrapped user" do
- controller = instance_double('DummyController')
- env = env_for('/', 'action_controller.instance' => controller)
allow(controller).to receive(:current_user) { user }
retval = described_class.extract(env)
expect(retval).to be_a(described_class)
+ end
+
+ context "but it requires parameters" do
+ let(:controller) { dummy_controller.new }
+ subject { described_class.extract(env) }
+
+ context ": current_user(a)" do
+ let(:dummy_controller) do
+ Class.new do
+ def current_user(_a)
+ "username"
+ end
+ end
+ end
+
+ it { should be_nil }
+ end
+
+ context ": current_user(a, b)" do
+ let(:dummy_controller) do
+ Class.new do
+ def current_user(_a, _b)
+ "username"
+ end
+ end
+ end
+
+ it { should be_nil }
+ end
+
+ context ": current_user(a, *b)" do
+ let(:dummy_controller) do
+ Class.new do
+ def current_user(_a, *_b)
+ "username"
+ end
+ end
+ end
+
+ it { should be_nil }
+ end
+
+ context ": current_user(a, b, *c, &d)" do
+ let(:dummy_controller) do
+ Class.new do
+ def current_user(_a, _b, *_c, &_d)
+ "username"
+ end
+ end
+ end
+
+ it { should be_nil }
+ end
+
+ context ": current_user(*a)" do
+ let(:dummy_controller) do
+ Class.new do
+ def current_user(*_a)
+ "username"
+ end
+ end
+ end
+
+ it { should be_a(described_class) }
+ end
end
end
end
end