discourse/spec/fabricators/user_fabricator.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

146 lines
4.1 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
Fabricator(:user_stat) do
end
Fabricator(:user, class_name: :user) do
2013-02-05 14:16:51 -05:00
name 'Bruce Wayne'
username { sequence(:username) { |i| "bruce#{i}" } }
email { sequence(:email) { |i| "bruce#{i}@wayne.com" } }
password 'myawesomepassword'
trust_level TrustLevel[1]
ip_address { sequence(:ip_address) { |i| "99.232.23.#{i % 254}" } }
active true
2013-02-05 14:16:51 -05:00
end
Fabricator(:user_with_secondary_email, from: :user) do
2018-07-03 07:51:22 -04:00
after_create { |user| Fabricate(:secondary_email, user: user) }
end
2013-02-05 14:16:51 -05:00
Fabricator(:coding_horror, from: :user) do
name 'Coding Horror'
2013-02-25 11:42:20 -05:00
username 'CodingHorror'
2013-02-05 14:16:51 -05:00
email 'jeff@somewhere.com'
password 'mymoreawesomepassword'
end
Fabricator(:evil_trout, from: :user) do
name 'Evil Trout'
2013-02-25 11:42:20 -05:00
username 'eviltrout'
2013-02-05 14:16:51 -05:00
email 'eviltrout@somewhere.com'
password 'imafish123'
2013-02-05 14:16:51 -05:00
end
Fabricator(:walter_white, from: :user) do
name 'Walter White'
2013-02-25 11:42:20 -05:00
username 'heisenberg'
2013-02-05 14:16:51 -05:00
email 'wwhite@bluemeth.com'
password 'letscook123'
2013-02-05 14:16:51 -05:00
end
Fabricator(:inactive_user, from: :user) do
name 'Inactive User'
username 'inactive_user'
email 'inactive@idontexist.com'
password 'qwerqwer123'
active false
end
2013-02-05 14:16:51 -05:00
Fabricator(:moderator, from: :user) do
name { sequence(:name) { |i| "A#{i} Moderator" } }
username { sequence(:username) { |i| "moderator#{i}" } }
email { sequence(:email) { |i| "moderator#{i}@discourse.org" } }
moderator true
after_create do |user|
user.group_users << Fabricate(:group_user, user: user, group: Group[:moderators])
# HACK: Some plugins add the user to staff group already which breaks because of duplication
user.group_users << Fabricate(:group_user, user: user, group: Group[:staff]) if group_users.none? { |gu| gu.group == Group[:staff] }
end
2013-02-05 14:16:51 -05:00
end
Fabricator(:admin, from: :user) do
name 'Anne Admin'
username { sequence(:username) { |i| "anne#{i}" } }
email { sequence(:email) { |i| "anne#{i}@discourse.org" } }
2013-02-05 14:16:51 -05:00
admin true
after_create do |user|
user.group_users << Fabricate(:group_user, user: user, group: Group[:admins])
# HACK: Some plugins add the user to staff group already which breaks because of duplication
user.group_users << Fabricate(:group_user, user: user, group: Group[:staff]) if group_users.none? { |gu| gu.group == Group[:staff] }
end
2013-02-05 14:16:51 -05:00
end
Fabricator(:newuser, from: :user) do
name 'Newbie Newperson'
username 'newbie'
email 'newbie@new.com'
trust_level TrustLevel[0]
end
2013-07-11 18:47:06 -04:00
Fabricator(:active_user, from: :user) do
name 'Luke Skywalker'
username { sequence(:username) { |i| "luke#{i}" } }
email { sequence(:email) { |i| "luke#{i}@skywalker.com" } }
password 'myawesomepassword'
trust_level TrustLevel[1]
2014-06-10 01:19:08 -04:00
after_create do |user|
user.user_profile.bio_raw = "Don't ask me about my dad!"
user.user_profile.save!
end
end
Fabricator(:leader, from: :user) do
name 'Veteran McVeteranish'
username { sequence(:username) { |i| "leader#{i}" } }
email { sequence(:email) { |i| "leader#{i}@leaderfun.com" } }
trust_level TrustLevel[3]
end
Fabricator(:trust_level_0, from: :user) do
trust_level TrustLevel[0]
end
Fabricator(:trust_level_1, from: :user) do
trust_level TrustLevel[1]
end
2014-09-05 02:52:40 -04:00
Fabricator(:trust_level_4, from: :user) do
name 'Leader McElderson'
username { sequence(:username) { |i| "tl4#{i}" } }
email { sequence(:email) { |i| "tl4#{i}@elderfun.com" } }
trust_level TrustLevel[4]
end
Fabricator(:anonymous, from: :user) do
name ''
username { sequence(:username) { |i| "anonymous#{i}" } }
email { sequence(:email) { |i| "anonymous#{i}@anonymous.com" } }
trust_level TrustLevel[1]
manual_locked_trust_level TrustLevel[1]
after_create do
# this is not "the perfect" fabricator in that user id -1 is system
# but creating a proper account here is real slow and has a huge
# impact on the test suite run time
create_anonymous_user_master(master_user_id: -1, active: true)
end
end
Fabricator(:staged, from: :user) do
staged true
end
Fabricator(:unicode_user, from: :user) do
username { sequence(:username) { |i| "Löwe#{i}" } }
end
Fabricator(:bot, from: :user) do
id do
min_id = User.minimum(:id)
[(min_id || 0) - 1, -10].min
end
end