Draft: Add random string factory
What does this MR do and why?
Describe in detail what your merge request does and why.
Currently, we use a lot of hard-coded passwords in specs. This is a problem because:
- A lot of these passwords are week, and we want to implement more stringent password requirements for users. !86310 (merged)
- We'd like to remove static passwords from our codebase. #360030 (closed)
This change adds a new :random_string
factory, which can be used to
generate random password to use in specs.
To test this, I tried adding this to a spec and then running it:
diff --git a/ee/spec/controllers/trial_registrations_controller_spec.rb b/ee/spec/controllers/trial_registrations_controller_spec.rb
index dfaba1391a2..76376810dfe 100644
--- a/ee/spec/controllers/trial_registrations_controller_spec.rb
+++ b/ee/spec/controllers/trial_registrations_controller_spec.rb
@@ -82,12 +82,13 @@
last_name: 'Doe',
email: 'johnd2019@local.dev',
username: 'johnd',
- password: 'abcd1234'
+ password: build(:random_string)
}
end
before do
stub_application_setting(send_user_confirmation_email: true)
+ puts user_params[:password]
end
subject(:post_create) { post :create, params: { user: user_params } }
Which results in the output:
$ bundle exec rspec ee/spec/controllers/trial_registrations_controller_spec.rb
Run options: include {:focus=>true}
All examples were filtered out; ignoring {:focus=>true}
Test environment set up in 4.737432 seconds
......x#!@pZ*^PEMziVgPhIf*udlkA1rW4rP%
.&EalsQ4ra6g6oF*OLBIrdu24K8@wxa4p
.QYdpDmG$YHDgY0PUr&9HTrMe9pLUQibQ
.D5W6X5PMr1Os6qZXoHtv9H4oLd*vZ8G4
.10zMevc$xdaeCM)oZVP&8hQ@BE^s7!iZ
.
Finished in 9.33 seconds (files took 9.94 seconds to load)
11 examples, 0 failures
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Brian Williams