Skip to content

Commit 965a77e

Browse files
fixed lint issues
1 parent 01f0ffa commit 965a77e

File tree

6 files changed

+101
-61
lines changed

6 files changed

+101
-61
lines changed

app-rails/app/controllers/users/passwords_controller.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,18 @@
33
class Users::PasswordsController < ApplicationController
44
skip_after_action :verify_authorized
55

6+
def auth_service
7+
self.class.auth_service || AuthService.new
8+
end
9+
10+
def self.auth_service
11+
@auth_service
12+
end
13+
14+
def self.auth_service=(service)
15+
@auth_service = service
16+
end
17+
618
def forgot
719
@form = Users::ForgotPasswordForm.new
820
end

app-rails/app/controllers/users/registrations_controller.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,18 @@ class Users::RegistrationsController < ApplicationController
44
layout "users"
55
skip_after_action :verify_authorized
66

7+
def auth_service
8+
self.class.auth_service || AuthService.new
9+
end
10+
11+
def self.auth_service
12+
@auth_service
13+
end
14+
15+
def self.auth_service=(service)
16+
@auth_service = service
17+
end
18+
719
def new
820
@form = Users::RegistrationForm.new()
921
render :new

app-rails/app/controllers/users/sessions_controller.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,18 @@ class Users::SessionsController < Devise::SessionsController
44
layout "users"
55
skip_after_action :verify_authorized
66

7+
def auth_service
8+
self.class.auth_service || AuthService.new
9+
end
10+
11+
def self.auth_service
12+
@auth_service
13+
end
14+
15+
def self.auth_service=(service)
16+
@auth_service = service
17+
end
18+
719
def new
820
@form = Users::NewSessionForm.new
921
end

app-rails/spec/controllers/users/registrations_controller_spec.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757

5858
expect(response.status).to eq(422)
5959
end
60-
6160
end
6261

6362
describe "GET new_account_verification" do

app-rails/spec/controllers/users/sessions_controller_spec.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@
9393
expect(session[:challenge_email]).to eq("mfa@example.com")
9494
expect(response).to redirect_to(session_challenge_path)
9595
end
96-
9796
end
9897

9998
describe "GET challenge" do

app-rails/spec/requests/spam_traps_spec.rb

Lines changed: 65 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,73 @@
1-
RSpec.describe "Spam trap protection for public forms", type: :request do
2-
before do
3-
allow_any_instance_of(Users::PasswordsController).to receive(:auth_service).and_return(
4-
AuthService.new(Auth::MockAdapter.new)
5-
)
6-
end
71

8-
forms = [
9-
{
10-
name: "Password reset instructions",
11-
path: "/users/forgot-password",
12-
param_key: :users_forgot_password_form,
13-
valid_params: {
14-
email: "UsernameDoesntExistForSure@example.com"
15-
}
16-
},
17-
{
18-
name: "Password confirm reset",
19-
path: "/users/reset-password",
20-
param_key: :users_reset_password_form,
21-
valid_params: {
22-
email: "testIsANewUser@example.com",
23-
code: "123456",
24-
password: "aLongPassword123"
25-
}
26-
},
27-
{
28-
name: "Registration",
29-
path: "/users/registrations",
30-
param_key: :users_registration_form,
31-
valid_params: {
32-
email: "evenneweruser@example.com",
33-
password: "aLongPassword123"
34-
}
35-
},
36-
{
37-
name: "Login",
38-
path: "/users/sign_in",
39-
param_key: :users_new_session_form,
40-
valid_params: {
41-
email: "test@example.com",
42-
password: "password"
43-
}
44-
}
45-
]
462

47-
forms.each do |form|
48-
describe "#{form[:name]} form" do
49-
let(:spam_params) do
50-
{
51-
form[:param_key] => form[:valid_params].merge(spam_trap: "I am a bot")
52-
}
53-
end
543

55-
let(:valid_params) do
56-
{
57-
form[:param_key] => form[:valid_params]
4+
5+
6+
RSpec.describe "Spam trap protection for public forms", type: :request do
7+
before do
8+
Users::PasswordsController.auth_service = AuthService.new(Auth::MockAdapter.new)
9+
Users::RegistrationsController.auth_service = AuthService.new(Auth::MockAdapter.new)
10+
Users::SessionsController.auth_service = AuthService.new(Auth::MockAdapter.new(uid_generator: -> { "mock-uid" }))
11+
end
12+
13+
after do
14+
# Clean up so this doesn't leak across tests
15+
Users::PasswordsController.auth_service = nil
16+
Users::RegistrationsController.auth_service = nil
17+
Users::SessionsController.auth_service = nil
18+
end
19+
20+
forms = [
21+
{
22+
name: "Password reset instructions",
23+
path: "/users/forgot-password",
24+
param_key: :users_forgot_password_form,
25+
valid_params: {
26+
email: "UsernameDoesntExistForSure@example.com"
5827
}
59-
end
28+
},
29+
{
30+
name: "Password confirm reset",
31+
path: "/users/reset-password",
32+
param_key: :users_reset_password_form,
33+
valid_params: {
34+
email: "testIsANewUser@example.com",
35+
code: "123456",
36+
password: "aLongPassword123"
37+
}
38+
},
39+
{
40+
name: "Registration",
41+
path: "/users/registrations",
42+
param_key: :users_registration_form,
43+
valid_params: {
44+
email: "evenneweruser@example.com",
45+
password: "aLongPassword123"
46+
}
47+
},
48+
{
49+
name: "Login",
50+
path: "/users/sign_in",
51+
param_key: :users_new_session_form,
52+
valid_params: {
53+
email: "test@example.com",
54+
password: "password"
55+
}
56+
}
57+
]
58+
59+
forms.each do |form|
60+
describe "#{form[:name]} form" do
61+
let(:spam_params) do
62+
{
63+
form[:param_key] => form[:valid_params].merge(spam_trap: "I am a bot")
64+
}
65+
end
6066

61-
it "rejects spam submissions" do
62-
post form[:path], params: spam_params
63-
expect(response).to have_http_status(422), "Expected 422 for #{form[:name]} form, but got #{response.status}"
67+
it "rejects spam submissions" do
68+
post form[:path], params: spam_params
69+
expect(response).to have_http_status(422), "Expected 422 for #{form[:name]} form, but got #{response.status}"
70+
end
6471
end
6572
end
6673
end
67-
end

0 commit comments

Comments
 (0)