Files
sure/test/fixtures/users.yml
Juan José Mata cf01009699 perf(test): use MIN_COST bcrypt digests in user fixtures (#2551)
The user fixtures stored password digests generated at bcrypt cost 12,
so every sign_in in controller/integration tests paid ~230ms of bcrypt
verification CPU (verification cost is embedded in the digest, so
ActiveModel::SecurePassword.min_cost does not help). With ~100 test
files signing in via setup blocks, this was the single largest
contributor to CI suite time.

Regenerate the shared digest at BCrypt::Engine::MIN_COST (cost 4).
Sessions, MFA, password reset, hostings and sophtron suites drop from
~33s accumulated to ~10s locally, with no behavioral change.


Claude-Session: https://claude.ai/code/session_01RpZe2ajeGkPRRBHfaJTfUB

Co-authored-by: Claude <noreply@anthropic.com>
2026-07-08 09:00:25 +02:00

107 lines
2.7 KiB
YAML

# password_digest is BCrypt::Password.create(user_password_test, cost: BCrypt::Engine::MIN_COST).
# Keep MIN_COST here: verification cost is embedded in the digest, so a
# production-cost digest adds ~230ms of CPU to every sign_in in tests.
empty:
family: empty
first_name: User
last_name: One
email: user1@example.com
password_digest: $2a$04$deKu1NIqviMgrl.4NkXcieFkAmLa33RN9Tw/R/Llr22eMd4x/o/RO
onboarded_at: <%= 3.days.ago %>
role: admin
ai_enabled: true
show_sidebar: true
show_ai_sidebar: true
ui_layout: dashboard
sure_support_staff:
family: empty
first_name: Support
last_name: Admin
email: support@sure.am
password_digest: $2a$04$deKu1NIqviMgrl.4NkXcieFkAmLa33RN9Tw/R/Llr22eMd4x/o/RO
role: super_admin
onboarded_at: <%= 3.days.ago %>
ai_enabled: true
show_sidebar: true
show_ai_sidebar: true
ui_layout: dashboard
family_admin:
family: dylan_family
first_name: Bob
last_name: Dylan
email: bob@bobdylan.com
password_digest: $2a$04$deKu1NIqviMgrl.4NkXcieFkAmLa33RN9Tw/R/Llr22eMd4x/o/RO
role: admin
onboarded_at: <%= 3.days.ago %>
ai_enabled: true
show_sidebar: true
show_ai_sidebar: true
ui_layout: dashboard
family_member:
family: dylan_family
first_name: Jakob
last_name: Dylan
email: jakobdylan@yahoo.com
password_digest: $2a$04$deKu1NIqviMgrl.4NkXcieFkAmLa33RN9Tw/R/Llr22eMd4x/o/RO
onboarded_at: <%= 3.days.ago %>
role: member
ai_enabled: true
show_sidebar: true
show_ai_sidebar: true
ui_layout: dashboard
new_email:
family: empty
first_name: Test
last_name: User
email: user@example.com
unconfirmed_email: new@example.com
password_digest: $2a$04$deKu1NIqviMgrl.4NkXcieFkAmLa33RN9Tw/R/Llr22eMd4x/o/RO
onboarded_at: <%= Time.current %>
role: member
ai_enabled: true
show_sidebar: true
show_ai_sidebar: true
ui_layout: dashboard
intro_user:
family: empty
first_name: Intro
last_name: User
email: intro@example.com
password_digest: $2a$04$deKu1NIqviMgrl.4NkXcieFkAmLa33RN9Tw/R/Llr22eMd4x/o/RO
onboarded_at: <%= 1.day.ago %>
role: guest
ai_enabled: true
show_sidebar: false
show_ai_sidebar: false
ui_layout: intro
inactive_trial_user:
family: inactive_trial
first_name: Inactive
last_name: User
email: inactive@example.com
password_digest: $2a$04$deKu1NIqviMgrl.4NkXcieFkAmLa33RN9Tw/R/Llr22eMd4x/o/RO
role: admin
onboarded_at: <%= 90.days.ago %>
ai_enabled: true
show_sidebar: true
show_ai_sidebar: true
ui_layout: dashboard
# SSO-only user: created via JIT provisioning, no local password
sso_only:
family: empty
first_name: SSO
last_name: User
email: sso-user@example.com
password_digest: ~
role: admin
onboarded_at: <%= 1.day.ago %>
ai_enabled: true