@@ -43,8 +43,12 @@ class ControllerDouble < BaseControllerDouble
43
43
end
44
44
45
45
context "when no users are logged in" do
46
- it "#authenticate! redirects to root_url" do
47
- allow ( controller ) . to receive ( :request ) . and_return ( double ( format : nil , fullpath : nil ) )
46
+ let ( :html ) { Mime ::Type . lookup ( "text/html" ) }
47
+ let ( :json ) { Mime ::Type . lookup ( "application/json" ) }
48
+ let ( :js ) { Mime ::Type . lookup ( "application/javascript" ) }
49
+
50
+ it "#authenticate! redirects to root_url for format html" do
51
+ allow ( controller ) . to receive ( :request ) . and_return ( double ( format : html , fullpath : nil ) )
48
52
allow ( controller ) . to receive ( :redirect_to )
49
53
50
54
controller . authenticate_user!
@@ -56,6 +60,28 @@ class ControllerDouble < BaseControllerDouble
56
60
expect ( controller . user_signed_in? ) . to be_falsey
57
61
end
58
62
63
+ it "#authenticate! doesn't redirect for format json" do
64
+ allow ( controller ) . to receive ( :request ) . and_return ( double ( format : json , fullpath : nil ) )
65
+ allow ( controller ) . to receive ( :redirect_to )
66
+ allow ( controller ) . to receive ( :render )
67
+
68
+ controller . authenticate_user!
69
+
70
+ expect ( controller ) . not_to have_received ( :redirect_to )
71
+ expect ( controller ) . to have_received ( :render )
72
+ end
73
+
74
+ it "#authenticate! doesn't redirect for format js" do
75
+ allow ( controller ) . to receive ( :request ) . and_return ( double ( format : js , fullpath : nil ) )
76
+ allow ( controller ) . to receive ( :redirect_to )
77
+ allow ( controller ) . to receive ( :head )
78
+
79
+ controller . authenticate_user!
80
+
81
+ expect ( controller ) . not_to have_received ( :redirect_to )
82
+ expect ( controller ) . to have_received ( :head ) . with ( :unauthorized )
83
+ end
84
+
59
85
end
60
86
61
87
context "when a user is logged in" do
0 commit comments