spec/controllers/application_controller_spec.rb in devise-guests-0.7.0 vs spec/controllers/application_controller_spec.rb in devise-guests-0.8.0
- old
+ new
@@ -1,27 +1,45 @@
-require 'spec_helper'
-require 'ostruct'
+require "spec_helper"
+require "ostruct"
-describe ApplicationController, :type => :controller do
+describe ApplicationController, type: :controller do
controller do
-
end
before(:each) do
@mock_warden = OpenStruct.new
- @controller.request.env['warden'] = @mock_warden
+ @controller.request.env["warden"] = @mock_warden
end
it "should create an anonymous user for a guest" do
allow(@mock_warden).to receive(:authenticate).with(anything).and_return(false)
expect(@controller.current_or_guest_user.email).to match(/guest/)
end
it "should use the current user when available" do
- m = double()
+ m = double
allow(@mock_warden).to receive(:authenticate).with(anything).and_return(m)
expect(@controller.current_or_guest_user).to eq(m)
end
+ it "should run the 'logging_in' callbacks" do
+ # A user is logged in
+ current_user = double
+ allow(@controller).to receive(:current_user) { current_user }
+
+ # There is a guest user instance
+ guest_user = double
+ allow(guest_user).to receive(:destroy)
+ allow(@controller).to receive(:guest_user) { guest_user }
+ allow(@controller).to receive(:session) { {guest_user_id: 123} }
+
+ expect(@controller).to receive(:run_callbacks).with(:logging_in_user).and_call_original
+
+ @controller.current_or_guest_user
+ end
+
+ it "should define a 'logging_in' callback" do
+ expect(@controller).to respond_to(:_logging_in_user_callbacks)
+ end
end