Skip to content

Use configured values for Devise instead of hard-coded numbers

Eugie Limpin requested to merge el-fix-broken-master into master

What does this MR do and why?

Fixes master:broken gitlab-org/quality/engineering-productivity/master-broken-incidents#8934.

      # spec/initializers/8_devise_spec.rb
      allow(Gitlab::CurrentSettings).to receive(:max_login_attempts).and_return(35)
      allow(Gitlab::CurrentSettings).to receive(:failed_login_attempts_unlock_period_in_minutes).and_return(15)

The state resulting to the above stubs are leaked causing specs in spec/models/concerns/require_email_verification_spec.rb to fail.

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

Before
$ bin/rspec spec/initializers/8_devise_spec.rb spec/models/concerns/require_email_verification_spec.rb

......F.F....F.F....F.F....F.F....F.F....F.F....F.F...........F.F....F.F....F.F....F.F....F.F....F.F....F.F....F.F.

Finished in 24.78 seconds (files took 43.14 seconds to load)
115 examples, 30 failures

Failed examples:

rspec './spec/models/concerns/require_email_verification_spec.rb[1:2:2:3:1]' # RequireEmailVerification feature_flag_enabled: true, two_factor_enabled: true, oauth_user: true, skipped: true #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:2:3:2:1]' # RequireEmailVerification feature_flag_enabled: true, two_factor_enabled: true, oauth_user: true, skipped: true #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:3:2:3:1]' # RequireEmailVerification feature_flag_enabled: true, two_factor_enabled: true, oauth_user: true, skipped: false #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:3:3:2:1]' # RequireEmailVerification feature_flag_enabled: true, two_factor_enabled: true, oauth_user: true, skipped: false #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:4:2:3:1]' # RequireEmailVerification feature_flag_enabled: true, two_factor_enabled: true, oauth_user: false, skipped: true #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:4:3:2:1]' # RequireEmailVerification feature_flag_enabled: true, two_factor_enabled: true, oauth_user: false, skipped: true #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:5:2:3:1]' # RequireEmailVerification feature_flag_enabled: true, two_factor_enabled: true, oauth_user: false, skipped: false #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:5:3:2:1]' # RequireEmailVerification feature_flag_enabled: true, two_factor_enabled: true, oauth_user: false, skipped: false #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:6:2:3:1]' # RequireEmailVerification feature_flag_enabled: true, two_factor_enabled: false, oauth_user: true, skipped: true #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:6:3:2:1]' # RequireEmailVerification feature_flag_enabled: true, two_factor_enabled: false, oauth_user: true, skipped: true #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:7:2:3:1]' # RequireEmailVerification feature_flag_enabled: true, two_factor_enabled: false, oauth_user: true, skipped: false #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:7:3:2:1]' # RequireEmailVerification feature_flag_enabled: true, two_factor_enabled: false, oauth_user: true, skipped: false #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:8:2:3:1]' # RequireEmailVerification feature_flag_enabled: true, two_factor_enabled: false, oauth_user: false, skipped: true #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:8:3:2:1]' # RequireEmailVerification feature_flag_enabled: true, two_factor_enabled: false, oauth_user: false, skipped: true #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:10:2:3:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: true, oauth_user: true, skipped: true #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:10:3:2:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: true, oauth_user: true, skipped: true #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:11:2:3:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: true, oauth_user: true, skipped: false #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:11:3:2:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: true, oauth_user: true, skipped: false #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:12:2:3:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: true, oauth_user: false, skipped: true #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:12:3:2:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: true, oauth_user: false, skipped: true #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:13:2:3:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: true, oauth_user: false, skipped: false #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:13:3:2:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: true, oauth_user: false, skipped: false #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:14:2:3:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: false, oauth_user: true, skipped: true #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:14:3:2:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: false, oauth_user: true, skipped: true #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:15:2:3:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: false, oauth_user: true, skipped: false #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:15:3:2:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: false, oauth_user: true, skipped: false #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:16:2:3:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: false, oauth_user: false, skipped: true #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:16:3:2:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: false, oauth_user: false, skipped: true #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:17:2:3:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: false, oauth_user: false, skipped: false #attempts_exceeded? when failed_attempts is GTE Devise default amount is expected to eq true
rspec './spec/models/concerns/require_email_verification_spec.rb[1:17:3:2:1]' # RequireEmailVerification feature_flag_enabled: false, two_factor_enabled: false, oauth_user: false, skipped: false #lock_expired? when locked longer ago than Devise default time but shorter ago than overriden time is expected to eq true
After
$ bin/rspec spec/initializers/8_devise_spec.rb spec/models/concerns/require_email_verification_spec.rb
...................................................................................................................

Finished in 1 minute 0.38 seconds (files took 48.46 seconds to load)
115 examples, 0 failures

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

Edited by Eugie Limpin

Merge request reports

Loading