authkit 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +12 -0
- data/README.md +11 -3
- data/Rakefile +15 -8
- data/authkit.gemspec +2 -2
- data/lib/authkit/version.rb +1 -1
- data/lib/generators/authkit/install_generator.rb +8 -1
- data/lib/generators/authkit/templates/app/controllers/application_controller.rb +23 -20
- data/lib/generators/authkit/templates/app/controllers/auths_controller.rb +4 -4
- data/lib/generators/authkit/templates/app/controllers/email_confirmation_controller.rb +3 -6
- data/lib/generators/authkit/templates/app/controllers/password_change_controller.rb +4 -5
- data/lib/generators/authkit/templates/app/controllers/signup_controller.rb +4 -1
- data/lib/generators/authkit/templates/app/controllers/upload_controller.rb +3 -3
- data/lib/generators/authkit/templates/app/controllers/users_controller.rb +1 -3
- data/lib/generators/authkit/templates/app/forms/signup.rb +10 -2
- data/lib/generators/authkit/templates/app/models/user.rb +2 -22
- data/lib/generators/authkit/templates/app/models/user_session.rb +55 -0
- data/lib/generators/authkit/templates/app/views/password_reset/show.html.erb +0 -2
- data/lib/generators/authkit/templates/db/migrate/add_authkit_fields_to_users.rb +1 -10
- data/lib/generators/authkit/templates/db/migrate/create_auths.rb +6 -2
- data/lib/generators/authkit/templates/db/migrate/create_avatars.rb +3 -2
- data/lib/generators/authkit/templates/db/migrate/create_user_sessions.rb +27 -0
- data/lib/generators/authkit/templates/db/migrate/create_users.rb +2 -2
- data/lib/generators/authkit/templates/spec/controllers/application_controller_spec.rb +40 -47
- data/lib/generators/authkit/templates/spec/controllers/email_confirmation_controller_spec.rb +11 -11
- data/lib/generators/authkit/templates/spec/controllers/password_change_controller_spec.rb +21 -26
- data/lib/generators/authkit/templates/spec/controllers/password_reset_controller_spec.rb +11 -16
- data/lib/generators/authkit/templates/spec/controllers/sessions_controller_spec.rb +17 -23
- data/lib/generators/authkit/templates/spec/controllers/signup_controller_spec.rb +21 -29
- data/lib/generators/authkit/templates/spec/controllers/users_controller_spec.rb +14 -18
- data/lib/generators/authkit/templates/spec/factories/user_session.rb +6 -0
- data/lib/generators/authkit/templates/spec/forms/signup_spec.rb +1 -1
- data/lib/generators/authkit/templates/spec/models/user_session_spec.rb +81 -0
- data/lib/generators/authkit/templates/spec/models/user_spec.rb +18 -45
- data/lib/generators/authkit/templates/spec/support/factory_girl.rb +5 -0
- data/lib/generators/authkit/templates/spec/support/shoulda_matchers.rb +6 -0
- metadata +13 -6
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
describe PasswordChangeController do
|
3
|
+
RSpec.describe PasswordChangeController do
|
4
4
|
render_views
|
5
5
|
|
6
6
|
let(:token) { "TOKEN" }
|
@@ -12,26 +12,26 @@ describe PasswordChangeController do
|
|
12
12
|
it "requires no user" do
|
13
13
|
allow(controller).to receive(:email_user).and_return(user)
|
14
14
|
expect(controller).to receive(:logout)
|
15
|
-
get 'show', valid_params
|
15
|
+
get 'show', params: valid_params
|
16
16
|
end
|
17
17
|
|
18
18
|
it "requires an email user" do
|
19
19
|
user.save
|
20
|
-
get 'show', valid_params
|
21
|
-
expect(
|
20
|
+
get 'show', params: valid_params
|
21
|
+
expect(controller.send(:email_user).id).to eq(user.id)
|
22
22
|
end
|
23
23
|
|
24
24
|
it "redirects if there is no email user" do
|
25
25
|
user.save
|
26
26
|
expect {
|
27
|
-
get 'show', {token: token, email: "invalid@example.com"}
|
27
|
+
get 'show', params: {token: token, email: "invalid@example.com"}
|
28
28
|
}.to raise_error(ActiveRecord::RecordNotFound)
|
29
29
|
end
|
30
30
|
|
31
31
|
it "requires a valid token" do
|
32
32
|
allow(controller).to receive(:email_user).and_return(user)
|
33
33
|
user.reset_password_token = "OTHER TOKEN"
|
34
|
-
get 'show', valid_params
|
34
|
+
get 'show', params: valid_params
|
35
35
|
expect(response).to be_redirect
|
36
36
|
expect(flash[:error]).to_not be_empty
|
37
37
|
end
|
@@ -39,14 +39,14 @@ describe PasswordChangeController do
|
|
39
39
|
it "requires an unexpired token" do
|
40
40
|
allow(controller).to receive(:email_user).and_return(user)
|
41
41
|
user.reset_password_token_created_at = 1.year.ago
|
42
|
-
get 'show', valid_params
|
42
|
+
get 'show', params: valid_params
|
43
43
|
expect(response).to be_redirect
|
44
44
|
expect(flash[:error]).to_not be_empty
|
45
45
|
end
|
46
46
|
|
47
47
|
it "returns http success" do
|
48
48
|
allow(controller).to receive(:email_user).and_return(user)
|
49
|
-
get 'show', valid_params
|
49
|
+
get 'show', params: valid_params
|
50
50
|
expect(response).to be_success
|
51
51
|
end
|
52
52
|
end
|
@@ -55,26 +55,26 @@ describe PasswordChangeController do
|
|
55
55
|
it "requires no user" do
|
56
56
|
allow(controller).to receive(:email_user).and_return(user)
|
57
57
|
expect(controller).to receive(:logout)
|
58
|
-
get 'show', valid_params
|
58
|
+
get 'show', params: valid_params
|
59
59
|
end
|
60
60
|
|
61
61
|
it "requires an email user" do
|
62
62
|
user.save
|
63
|
-
post 'create', password_params
|
64
|
-
expect(
|
63
|
+
post 'create', params: password_params
|
64
|
+
expect(controller.send(:email_user).id).to eq(user.id)
|
65
65
|
end
|
66
66
|
|
67
67
|
it "redirects if there is no email user" do
|
68
68
|
user.save
|
69
69
|
expect {
|
70
|
-
get 'show', {token: token, email: "invalid@example.com"}
|
70
|
+
get 'show', params: {token: token, email: "invalid@example.com"}
|
71
71
|
}.to raise_error(ActiveRecord::RecordNotFound)
|
72
72
|
end
|
73
73
|
|
74
74
|
it "requires a valid token" do
|
75
75
|
allow(controller).to receive(:email_user).and_return(user)
|
76
76
|
user.reset_password_token = "OTHER TOKEN"
|
77
|
-
post 'create', password_params
|
77
|
+
post 'create', params: password_params
|
78
78
|
expect(response).to be_redirect
|
79
79
|
expect(flash[:error]).to_not be_empty
|
80
80
|
end
|
@@ -86,7 +86,7 @@ describe PasswordChangeController do
|
|
86
86
|
|
87
87
|
it "changes the password" do
|
88
88
|
expect {
|
89
|
-
post 'create', password_params
|
89
|
+
post 'create', params: password_params
|
90
90
|
}.to change(user, :password_digest)
|
91
91
|
|
92
92
|
expect(user).to be_valid
|
@@ -94,22 +94,22 @@ describe PasswordChangeController do
|
|
94
94
|
|
95
95
|
it "does not sign the user in" do
|
96
96
|
expect(controller).to_not receive(:login)
|
97
|
-
post 'create', password_params
|
97
|
+
post 'create', params: password_params
|
98
98
|
end
|
99
99
|
|
100
100
|
it "redirects the user" do
|
101
|
-
post 'create', password_params
|
101
|
+
post 'create', params: password_params
|
102
102
|
expect(response).to be_redirect
|
103
103
|
end
|
104
104
|
|
105
105
|
it "sets the flash" do
|
106
|
-
post 'create', password_params
|
106
|
+
post 'create', params: password_params
|
107
107
|
expect(flash[:notice]).to match(/successfully/i)
|
108
108
|
end
|
109
109
|
|
110
110
|
describe "from json" do
|
111
111
|
it "returns http success" do
|
112
|
-
post 'create', password_params.merge(format: 'json')
|
112
|
+
post 'create', params: password_params.merge(format: 'json')
|
113
113
|
expect(response).to be_success
|
114
114
|
end
|
115
115
|
end
|
@@ -122,22 +122,17 @@ describe PasswordChangeController do
|
|
122
122
|
|
123
123
|
it "doesn't sign the user in" do
|
124
124
|
expect(controller).to_not receive(:login)
|
125
|
-
post 'create', {token: token, email: user.email, password: 'newpassword', password_confirmation: 'invalid'}
|
126
|
-
end
|
127
|
-
|
128
|
-
it "renders the show template" do
|
129
|
-
post 'create', {token: token, email: user.email, password: 'newpassword', password_confirmation: 'invalid'}
|
130
|
-
expect(response).to render_template(:show)
|
125
|
+
post 'create', params: {token: token, email: user.email, password: 'newpassword', password_confirmation: 'invalid'}
|
131
126
|
end
|
132
127
|
|
133
128
|
it "has errors" do
|
134
|
-
post 'create', {token: token, email: user.email, password: 'newpassword', password_confirmation: 'invalid'}
|
129
|
+
post 'create', params: {token: token, email: user.email, password: 'newpassword', password_confirmation: 'invalid'}
|
135
130
|
expect(user.errors[:password_confirmation].size).to eq(1)
|
136
131
|
end
|
137
132
|
|
138
133
|
describe "from json" do
|
139
134
|
it "returns an error" do
|
140
|
-
post 'create', {token: token, email: user.email, password: 'newpassword', password_confirmation: 'invalid', format: 'json'}
|
135
|
+
post 'create', params: {token: token, email: user.email, password: 'newpassword', password_confirmation: 'invalid', format: 'json'}
|
141
136
|
expect(response.code).to eq('422')
|
142
137
|
expect(response.body).to match(/doesn't match/i)
|
143
138
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
describe PasswordResetController do
|
3
|
+
RSpec.describe PasswordResetController do
|
4
4
|
render_views
|
5
5
|
|
6
6
|
let(:user) { create(:user) }
|
@@ -18,38 +18,38 @@ describe PasswordResetController do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
it "redirects the user" do
|
21
|
-
post :create, {email: user.email}
|
21
|
+
post :create, params: { email: user.email }
|
22
22
|
expect(response).to be_redirect
|
23
23
|
end
|
24
24
|
|
25
25
|
it "finds the user by the email or user name" do
|
26
|
-
post :create, {email: user.email}
|
26
|
+
post :create, params: { email: user.email }
|
27
27
|
expect(controller.send(:user)).to eq(user)
|
28
28
|
end
|
29
29
|
|
30
30
|
it "logs any current user out if it finds the user" do
|
31
31
|
expect(controller).to receive(:logout)
|
32
|
-
post :create, {email: user.email}
|
32
|
+
post :create, params: { email: user.email }
|
33
33
|
end
|
34
34
|
|
35
35
|
it "resets the password if it finds the user" do
|
36
36
|
expect_any_instance_of(User).to receive(:send_reset_password).and_return(true)
|
37
|
-
post :create, {email: user.email}
|
37
|
+
post :create, params: { email: user.email }
|
38
38
|
end
|
39
39
|
|
40
40
|
it "does not reset the password if it does not find a user" do
|
41
41
|
expect_any_instance_of(User).to_not receive(:send_reset_password)
|
42
|
-
post :create, {email: "unknown@example.com"}
|
42
|
+
post :create, params: { email: "unknown@example.com" }
|
43
43
|
end
|
44
44
|
|
45
45
|
it "downcases the email or user name" do
|
46
46
|
expect_any_instance_of(User).to receive(:send_reset_password).and_return(true)
|
47
|
-
post :create, {email: user.email.upcase}
|
47
|
+
post :create, params: { email: user.email.upcase }
|
48
48
|
end
|
49
49
|
|
50
50
|
describe "from json" do
|
51
51
|
it "returns http success" do
|
52
|
-
post :create, {email: user.email, format: "json"}
|
52
|
+
post :create, params: { email: user.email, format: "json" }
|
53
53
|
expect(response).to be_success
|
54
54
|
end
|
55
55
|
end
|
@@ -57,24 +57,19 @@ describe PasswordResetController do
|
|
57
57
|
describe "with invalid email" do
|
58
58
|
describe "from html" do
|
59
59
|
it "sets the flash message" do
|
60
|
-
post :create, {email: "unknown@example.com"}
|
60
|
+
post :create, params: { email: "unknown@example.com" }
|
61
61
|
expect(flash.now[:error]).to_not be_empty
|
62
62
|
end
|
63
|
-
|
64
|
-
it "renders the show page" do
|
65
|
-
post :create, {email: "unknown@example.com"}
|
66
|
-
expect(response).to render_template(:show)
|
67
|
-
end
|
68
63
|
end
|
69
64
|
|
70
65
|
describe "from json" do
|
71
66
|
it "returns an error" do
|
72
|
-
post :create, {email: "unknown@example.com", format: "json"}
|
67
|
+
post :create, params: { email: "unknown@example.com", format: "json" }
|
73
68
|
expect(response.body).to match(/invalid user name or email/i)
|
74
69
|
end
|
75
70
|
|
76
71
|
it "returns forbidden status" do
|
77
|
-
post :create, {email: "unknown@example.com", format: "json"}
|
72
|
+
post :create, params: { email: "unknown@example.com", format: "json" }
|
78
73
|
expect(response.code).to eq('422')
|
79
74
|
end
|
80
75
|
end
|
@@ -3,8 +3,9 @@ require 'rails_helper'
|
|
3
3
|
describe SessionsController do
|
4
4
|
render_views
|
5
5
|
|
6
|
-
let(:
|
7
|
-
let(:
|
6
|
+
let(:user_session) { create(:user_session) }
|
7
|
+
let(:user) { user_session.user }
|
8
|
+
let(:logged_in_session) { { user_session_id: user_session.id } }
|
8
9
|
|
9
10
|
describe "GET 'new'" do
|
10
11
|
it "returns http success" do
|
@@ -19,47 +20,45 @@ describe SessionsController do
|
|
19
20
|
end
|
20
21
|
|
21
22
|
it "redirects the user" do
|
22
|
-
post :create, {email: user.email, password: "example"}
|
23
|
+
post :create, params: { email: user.email, password: "example" }
|
23
24
|
expect(response).to be_redirect
|
24
25
|
end
|
25
26
|
|
26
27
|
it "authenticates if it finds the user" do
|
27
28
|
expect_any_instance_of(User).to receive(:authenticate).and_return(true)
|
28
|
-
post :create, {email: user.email, password: "example"}
|
29
|
+
post :create, params: { email: user.email, password: "example" }
|
29
30
|
end
|
30
31
|
|
31
32
|
it "does not authenticate if it does not find a user" do
|
32
33
|
expect_any_instance_of(User).to_not receive(:authenticate)
|
33
|
-
post :create, {email: "unknown@example.com", password: "example"}
|
34
|
+
post :create, params: { email: "unknown@example.com", password: "example" }
|
34
35
|
end
|
35
36
|
|
36
37
|
it "downcases the email or user name" do
|
37
38
|
expect_any_instance_of(User).to receive(:authenticate).and_return(true)
|
38
|
-
post :create, {email: user.email, password: "example"}
|
39
|
+
post :create, params: { email: user.email, password: "example" }
|
39
40
|
end
|
40
41
|
|
41
42
|
it "signs the user in" do
|
42
|
-
post :create, {email: user.email, password: "example"}
|
43
|
+
post :create, params: { email: user.email, password: "example" }
|
43
44
|
expect(controller.send(:current_user)).to eq(user)
|
44
45
|
end
|
45
46
|
|
46
47
|
it "remembers the user if remember me is chosen" do
|
47
|
-
expect_any_instance_of(User).to receive(:set_remember_token)
|
48
48
|
expect(controller).to receive(:set_remember_cookie)
|
49
|
-
post :create, {email: user.email, password: "example", remember_me: "1"}
|
49
|
+
post :create, params: { email: user.email, password: "example", remember_me: "1" }
|
50
50
|
expect(controller.send(:current_user)).to eq(user)
|
51
51
|
end
|
52
52
|
|
53
53
|
it "does not remember the user if remember me is not chosen" do
|
54
|
-
expect_any_instance_of(User).to_not receive(:set_remember_token)
|
55
54
|
expect(controller).to_not receive(:set_remember_cookie)
|
56
|
-
post :create, {email: user.email, password: "example", remember_me: ""}
|
55
|
+
post :create, params: { email: user.email, password: "example", remember_me: "" }
|
57
56
|
expect(controller.send(:current_user)).to eq(user)
|
58
57
|
end
|
59
58
|
|
60
59
|
describe "from json" do
|
61
60
|
it "returns http success" do
|
62
|
-
post :create, {email: user.email, password: "example", format: "json"}
|
61
|
+
post :create, params: { email: user.email, password: "example", format: "json" }
|
63
62
|
expect(response).to be_success
|
64
63
|
end
|
65
64
|
end
|
@@ -67,24 +66,19 @@ describe SessionsController do
|
|
67
66
|
describe "with invalid password" do
|
68
67
|
describe "from html" do
|
69
68
|
it "sets the flash message" do
|
70
|
-
post :create, {email: user.email, password: "wrongpassword"}
|
69
|
+
post :create, params: { email: user.email, password: "wrongpassword" }
|
71
70
|
expect(flash.now[:error]).to_not be_empty
|
72
71
|
end
|
73
|
-
|
74
|
-
it "renders the new page" do
|
75
|
-
post :create, {email: user.email, password: "wrongpassword"}
|
76
|
-
expect(response).to render_template(:new)
|
77
|
-
end
|
78
72
|
end
|
79
73
|
|
80
74
|
describe "from json" do
|
81
75
|
it "returns an error" do
|
82
|
-
post :create, {email: user.email, password: "wrongpassword", format: "json"}
|
76
|
+
post :create, params: { email: user.email, password: "wrongpassword", format: "json" }
|
83
77
|
expect(response.body).to match(/invalid user name or password/i)
|
84
78
|
end
|
85
79
|
|
86
80
|
it "returns forbidden status" do
|
87
|
-
post :create, {email: user.email, password: "wrongpassword", format: "json"}
|
81
|
+
post :create, params: { email: user.email, password: "wrongpassword", format: "json" }
|
88
82
|
expect(response.code).to eq('422')
|
89
83
|
end
|
90
84
|
end
|
@@ -93,20 +87,20 @@ describe SessionsController do
|
|
93
87
|
|
94
88
|
describe "DELETE 'destroy'" do
|
95
89
|
it "logs the user out" do
|
96
|
-
delete "destroy",
|
90
|
+
delete "destroy", session: logged_in_session
|
97
91
|
expect(controller.send(:current_user)).to be_nil
|
98
92
|
end
|
99
93
|
|
100
94
|
describe "from html" do
|
101
95
|
it "redirects the user" do
|
102
|
-
delete "destroy",
|
96
|
+
delete "destroy", session: logged_in_session
|
103
97
|
expect(response).to redirect_to(root_path)
|
104
98
|
end
|
105
99
|
end
|
106
100
|
|
107
101
|
describe "from json" do
|
108
102
|
it "returns http success" do
|
109
|
-
delete "destroy", {format: 'json'}, logged_in_session
|
103
|
+
delete "destroy", params: { format: 'json' }, session: logged_in_session
|
110
104
|
expect(response).to be_success
|
111
105
|
end
|
112
106
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
describe SignupController do
|
3
|
+
RSpec.describe SignupController do
|
4
4
|
render_views
|
5
5
|
|
6
6
|
let(:signup_params) { attributes_for(:user) }
|
@@ -10,7 +10,7 @@ describe SignupController do
|
|
10
10
|
it "returns http success" do
|
11
11
|
get :new
|
12
12
|
expect(response).to be_success
|
13
|
-
expect(
|
13
|
+
expect(controller.send(:signup)).to_not be_nil
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
@@ -19,36 +19,34 @@ describe SignupController do
|
|
19
19
|
describe "from html" do
|
20
20
|
it "creates a new user" do
|
21
21
|
expect {
|
22
|
-
post :create, {signup: signup_params
|
22
|
+
post :create, params: { signup: signup_params }
|
23
23
|
}.to change(User, :count).by(1)
|
24
24
|
end
|
25
25
|
|
26
26
|
it "confirms the email" do
|
27
27
|
expect_any_instance_of(User).to receive(:send_confirmation)
|
28
|
-
post :create, {signup: signup_params
|
28
|
+
post :create, params: { signup: signup_params }
|
29
29
|
end
|
30
30
|
|
31
31
|
it "signs the user in" do
|
32
|
-
post :create, {signup: signup_params
|
33
|
-
expect(controller.send(:current_user)).to eq(
|
32
|
+
post :create, params: { signup: signup_params }
|
33
|
+
expect(controller.send(:current_user)).to eq(controller.send(:signup).user)
|
34
34
|
end
|
35
35
|
|
36
36
|
it "remembers the user if remember me is chosen" do
|
37
|
-
expect_any_instance_of(User).to receive(:set_remember_token)
|
38
37
|
expect(controller).to receive(:set_remember_cookie)
|
39
|
-
post :create, {signup: signup_params, remember_me: "1"
|
40
|
-
expect(controller.send(:current_user)).to eq(
|
38
|
+
post :create, params: { signup: signup_params, remember_me: "1" }
|
39
|
+
expect(controller.send(:current_user)).to eq(controller.send(:signup).user)
|
41
40
|
end
|
42
41
|
|
43
42
|
it "does not remember the user if remember me is not chosen" do
|
44
|
-
expect_any_instance_of(User).to_not receive(:set_remember_token)
|
45
43
|
expect(controller).to_not receive(:set_remember_cookie)
|
46
|
-
post :create, {signup: signup_params, remember_me: ""
|
47
|
-
expect(controller.send(:current_user)).to eq(
|
44
|
+
post :create, params: { signup: signup_params, remember_me: "" }
|
45
|
+
expect(controller.send(:current_user)).to eq(controller.send(:signup).user)
|
48
46
|
end
|
49
47
|
|
50
48
|
it "redirects to the root" do
|
51
|
-
post :create, {signup: signup_params}
|
49
|
+
post :create, params: { signup: signup_params }
|
52
50
|
expect(response).to be_redirect
|
53
51
|
end
|
54
52
|
end
|
@@ -56,17 +54,17 @@ describe SignupController do
|
|
56
54
|
describe "from json" do
|
57
55
|
it "creates the user" do
|
58
56
|
expect {
|
59
|
-
post :create, {signup: signup_params, format: 'json'
|
57
|
+
post :create, params: { signup: signup_params, format: 'json' }
|
60
58
|
}.to change(User, :count).by(1)
|
61
59
|
end
|
62
60
|
|
63
61
|
it "signs the user in" do
|
64
|
-
post :create, {signup: signup_params, format: 'json'
|
65
|
-
expect(controller.send(:current_user)).to eq(
|
62
|
+
post :create, params: { signup: signup_params, format: 'json' }
|
63
|
+
expect(controller.send(:current_user)).to eq(controller.send(:signup).user)
|
66
64
|
end
|
67
65
|
|
68
66
|
it "returns http success" do
|
69
|
-
post :create, {signup: signup_params, format: 'json'}
|
67
|
+
post :create, params: { signup: signup_params, format: 'json' }
|
70
68
|
expect(response).to be_success
|
71
69
|
end
|
72
70
|
end
|
@@ -74,36 +72,30 @@ describe SignupController do
|
|
74
72
|
|
75
73
|
describe "with invalid params" do
|
76
74
|
describe "from html" do
|
77
|
-
it "renders the new page" do
|
78
|
-
post :create, {signup: invalid_params}, {}
|
79
|
-
expect(response).to render_template("new")
|
80
|
-
end
|
81
|
-
|
82
75
|
it "does not create a user" do
|
83
76
|
expect {
|
84
|
-
post :create, {signup: invalid_params
|
77
|
+
post :create, params: { signup: invalid_params }
|
85
78
|
}.to_not change(User, :count)
|
86
79
|
end
|
87
80
|
|
88
81
|
it "sets the errors" do
|
89
|
-
post :create, {signup: invalid_params
|
90
|
-
expect(
|
82
|
+
post :create, params: { signup: invalid_params }
|
83
|
+
expect(controller.send(:signup).errors[:password_confirmation].size).to eq(1)
|
91
84
|
end
|
92
85
|
end
|
93
86
|
|
94
87
|
describe "from json" do
|
95
88
|
it "returns a 422" do
|
96
|
-
post :create, {signup: invalid_params, format: 'json'
|
89
|
+
post :create, params: { signup: invalid_params, format: 'json' }
|
97
90
|
expect(response.code).to eq('422')
|
98
91
|
end
|
99
92
|
|
100
93
|
it "includes the errors in the json" do
|
101
|
-
post :create, {signup: invalid_params, format: 'json'
|
102
|
-
expect(
|
94
|
+
post :create, params: { signup: invalid_params, format: 'json' }
|
95
|
+
expect(controller.send(:signup).errors[:password_confirmation].size).to eq(1)
|
103
96
|
expect(response.body).to match(/doesn't match Password/i)
|
104
97
|
end
|
105
98
|
end
|
106
99
|
end
|
107
100
|
end
|
108
101
|
end
|
109
|
-
|