From 6df45eb4630d3eef4f232398de405b169c3c6876 Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Tue, 16 Feb 2016 22:55:24 -0500 Subject: [PATCH] Move all factory definitions to their own file --- spec/factories.rb | 230 ------------------------- spec/factories/abuse_reports.rb | 2 - spec/factories/broadcast_messages.rb | 2 - spec/factories/ci/builds.rb | 2 + spec/factories/ci/commits.rb | 1 - spec/factories/ci/runner_projects.rb | 2 - spec/factories/ci/runners.rb | 2 - spec/factories/ci/trigger_requests.rb | 2 - spec/factories/ci/triggers.rb | 2 - spec/factories/ci/variables.rb | 2 - spec/factories/deploy_keys_projects.rb | 6 + spec/factories/emails.rb | 14 ++ spec/factories/events.rb | 10 ++ spec/factories/forked_project_links.rb | 2 - spec/factories/groups.rb | 7 + spec/factories/identities.rb | 6 + spec/factories/issues.rb | 18 ++ spec/factories/keys.rb | 24 +++ spec/factories/label_links.rb | 2 - spec/factories/labels.rb | 2 - spec/factories/lfs_objects.rb | 2 +- spec/factories/lfs_objects_projects.rb | 2 - spec/factories/milestones.rb | 12 ++ spec/factories/namespaces.rb | 7 + spec/factories/notes.rb | 2 + spec/factories/personal_snippets.rb | 15 ++ spec/factories/project_hooks.rb | 5 + spec/factories/project_members.rb | 7 + spec/factories/project_snippets.rb | 9 + spec/factories/protected_branches.rb | 6 + spec/factories/releases.rb | 2 - spec/factories/sent_notifications.rb | 8 + spec/factories/service_hooks.rb | 6 + spec/factories/services.rb | 7 + spec/factories/snippets.rb | 16 ++ spec/factories/spam_logs.rb | 2 - spec/factories/system_hooks.rb | 5 + spec/factories/users.rb | 50 ++++++ 38 files changed, 243 insertions(+), 258 deletions(-) delete mode 100644 spec/factories.rb create mode 100644 spec/factories/deploy_keys_projects.rb create mode 100644 spec/factories/emails.rb create mode 100644 spec/factories/events.rb create mode 100644 spec/factories/groups.rb create mode 100644 spec/factories/identities.rb create mode 100644 spec/factories/issues.rb create mode 100644 spec/factories/keys.rb create mode 100644 spec/factories/milestones.rb create mode 100644 spec/factories/namespaces.rb create mode 100644 spec/factories/personal_snippets.rb create mode 100644 spec/factories/project_hooks.rb create mode 100644 spec/factories/project_members.rb create mode 100644 spec/factories/project_snippets.rb create mode 100644 spec/factories/protected_branches.rb create mode 100644 spec/factories/sent_notifications.rb create mode 100644 spec/factories/service_hooks.rb create mode 100644 spec/factories/services.rb create mode 100644 spec/factories/snippets.rb create mode 100644 spec/factories/system_hooks.rb create mode 100644 spec/factories/users.rb diff --git a/spec/factories.rb b/spec/factories.rb deleted file mode 100644 index cd57661c1cd..00000000000 --- a/spec/factories.rb +++ /dev/null @@ -1,230 +0,0 @@ -include ActionDispatch::TestProcess - -FactoryGirl.define do - sequence :sentence, aliases: [:title, :content] do - FFaker::Lorem.sentence - end - - sequence :name do - FFaker::Name.name - end - - sequence :file_name do - FFaker::Internet.user_name - end - - sequence(:url) { FFaker::Internet.uri('http') } - - factory :user, aliases: [:author, :assignee, :owner, :creator] do - email { FFaker::Internet.email } - name - sequence(:username) { |n| "#{FFaker::Internet.user_name}#{n}" } - password "12345678" - confirmed_at { Time.now } - confirmation_token { nil } - can_create_group true - - trait :admin do - admin true - end - - trait :two_factor do - before(:create) do |user| - user.two_factor_enabled = true - user.otp_secret = User.generate_otp_secret(32) - user.otp_grace_period_started_at = Time.now - user.generate_otp_backup_codes! - end - end - - trait :with_avatar do - avatar { fixture_file_upload(Rails.root.join(*%w(spec fixtures dk.png)), 'image/png') } - avatar_crop_x 0 - avatar_crop_y 0 - avatar_crop_size 256 - end - - factory :omniauth_user do - ignore do - extern_uid '123456' - provider 'ldapmain' - end - - after(:create) do |user, evaluator| - user.identities << create( - :identity, - provider: evaluator.provider, - extern_uid: evaluator.extern_uid - ) - end - end - - factory :admin, traits: [:admin] - end - - factory :group do - sequence(:name) { |n| "group#{n}" } - path { name.downcase.gsub(/\s/, '_') } - type 'Group' - end - - factory :namespace do - sequence(:name) { |n| "namespace#{n}" } - path { name.downcase.gsub(/\s/, '_') } - owner - end - - factory :project_member do - user - project - access_level { ProjectMember::MASTER } - end - - factory :issue do - title - author - project - - trait :closed do - state :closed - end - - trait :reopened do - state :reopened - end - - factory :closed_issue, traits: [:closed] - factory :reopened_issue, traits: [:reopened] - end - - factory :event do - factory :closed_issue_event do - project - action { Event::CLOSED } - target factory: :closed_issue - author factory: :user - end - end - - factory :key do - title - key do - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0= dummy@gitlab.com" - end - - factory :deploy_key, class: 'DeployKey' do - end - - factory :personal_key do - user - end - - factory :another_key do - key do - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDmTillFzNTrrGgwaCKaSj+QCz81E6jBc/s9av0+3b1Hwfxgkqjl4nAK/OD2NjgyrONDTDfR8cRN4eAAy6nY8GLkOyYBDyuc5nTMqs5z3yVuTwf3koGm/YQQCmo91psZ2BgDFTor8SVEE5Mm1D1k3JDMhDFxzzrOtRYFPci9lskTJaBjpqWZ4E9rDTD2q/QZntCqbC3wE9uSemRQB5f8kik7vD/AD8VQXuzKladrZKkzkONCPWsXDspUitjM8HkQdOf0PsYn1CMUC1xKYbCxkg5TkEosIwGv6CoEArUrdu/4+10LVslq494mAvEItywzrluCLCnwELfW+h/m8UHoVhZ" - end - - factory :another_deploy_key, class: 'DeployKey' do - end - end - end - - factory :email do - user - email do - FFaker::Internet.email('alias') - end - - factory :another_email do - email do - FFaker::Internet.email('another.alias') - end - end - end - - factory :milestone do - title - project - - trait :closed do - state :closed - end - - factory :closed_milestone, traits: [:closed] - end - - factory :system_hook do - url - end - - factory :project_hook do - url - end - - factory :project_snippet do - project - author - title - content - file_name - end - - factory :personal_snippet do - author - title - content - file_name - - trait :public do - visibility_level Gitlab::VisibilityLevel::PUBLIC - end - - trait :internal do - visibility_level Gitlab::VisibilityLevel::INTERNAL - end - - trait :private do - visibility_level Gitlab::VisibilityLevel::PRIVATE - end - end - - factory :snippet do - author - title - content - file_name - end - - factory :protected_branch do - name - project - end - - factory :service do - type "" - title "GitLab CI" - project - end - - factory :service_hook do - url - service - end - - factory :deploy_keys_project do - deploy_key - project - end - - factory :identity do - provider 'ldapmain' - extern_uid 'my-ldap-id' - end - - factory :sent_notification do - project - recipient factory: :user - noteable factory: :issue - reply_key "0123456789abcdef" * 2 - end -end diff --git a/spec/factories/abuse_reports.rb b/spec/factories/abuse_reports.rb index 8d287ded292..d0e8c778518 100644 --- a/spec/factories/abuse_reports.rb +++ b/spec/factories/abuse_reports.rb @@ -10,8 +10,6 @@ # updated_at :datetime # -# Read about factories at https://github.com/thoughtbot/factory_girl - FactoryGirl.define do factory :abuse_report do reporter factory: :user diff --git a/spec/factories/broadcast_messages.rb b/spec/factories/broadcast_messages.rb index 978a7d4cecb..373ca75467e 100644 --- a/spec/factories/broadcast_messages.rb +++ b/spec/factories/broadcast_messages.rb @@ -12,8 +12,6 @@ # font :string(255) # -# Read about factories at https://github.com/thoughtbot/factory_girl - FactoryGirl.define do factory :broadcast_message do message "MyText" diff --git a/spec/factories/ci/builds.rb b/spec/factories/ci/builds.rb index a7a54d44521..cd49e559b7d 100644 --- a/spec/factories/ci/builds.rb +++ b/spec/factories/ci/builds.rb @@ -1,3 +1,5 @@ +include ActionDispatch::TestProcess + FactoryGirl.define do factory :ci_build, class: Ci::Build do name 'test' diff --git a/spec/factories/ci/commits.rb b/spec/factories/ci/commits.rb index b42cafa518a..645cd7ae766 100644 --- a/spec/factories/ci/commits.rb +++ b/spec/factories/ci/commits.rb @@ -16,7 +16,6 @@ # gl_project_id :integer # -# Read about factories at https://github.com/thoughtbot/factory_girl FactoryGirl.define do factory :ci_empty_commit, class: Ci::Commit do sha '97de212e80737a608d939f648d959671fb0a0142' diff --git a/spec/factories/ci/runner_projects.rb b/spec/factories/ci/runner_projects.rb index 008d1c5d961..83fccad679f 100644 --- a/spec/factories/ci/runner_projects.rb +++ b/spec/factories/ci/runner_projects.rb @@ -9,8 +9,6 @@ # updated_at :datetime # -# Read about factories at https://github.com/thoughtbot/factory_girl - FactoryGirl.define do factory :ci_runner_project, class: Ci::RunnerProject do runner_id 1 diff --git a/spec/factories/ci/runners.rb b/spec/factories/ci/runners.rb index 265663e8453..5b645fab32e 100644 --- a/spec/factories/ci/runners.rb +++ b/spec/factories/ci/runners.rb @@ -17,8 +17,6 @@ # architecture :string(255) # -# Read about factories at https://github.com/thoughtbot/factory_girl - FactoryGirl.define do factory :ci_runner, class: Ci::Runner do sequence :description do |n| diff --git a/spec/factories/ci/trigger_requests.rb b/spec/factories/ci/trigger_requests.rb index 2c0d004d267..6d47d05f8ad 100644 --- a/spec/factories/ci/trigger_requests.rb +++ b/spec/factories/ci/trigger_requests.rb @@ -1,5 +1,3 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl - FactoryGirl.define do factory :ci_trigger_request, class: Ci::TriggerRequest do factory :ci_trigger_request_with_variables do diff --git a/spec/factories/ci/triggers.rb b/spec/factories/ci/triggers.rb index fd3afdb1ec2..a27b04424e5 100644 --- a/spec/factories/ci/triggers.rb +++ b/spec/factories/ci/triggers.rb @@ -1,5 +1,3 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl - FactoryGirl.define do factory :ci_trigger_without_token, class: Ci::Trigger do factory :ci_trigger do diff --git a/spec/factories/ci/variables.rb b/spec/factories/ci/variables.rb index 8f62d64411b..856a8e725eb 100644 --- a/spec/factories/ci/variables.rb +++ b/spec/factories/ci/variables.rb @@ -12,8 +12,6 @@ # gl_project_id :integer # -# Read about factories at https://github.com/thoughtbot/factory_girl - FactoryGirl.define do factory :ci_variable, class: Ci::Variable do sequence(:key) { |n| "VARIABLE_#{n}" } diff --git a/spec/factories/deploy_keys_projects.rb b/spec/factories/deploy_keys_projects.rb new file mode 100644 index 00000000000..27cece487bd --- /dev/null +++ b/spec/factories/deploy_keys_projects.rb @@ -0,0 +1,6 @@ +FactoryGirl.define do + factory :deploy_keys_project do + deploy_key + project + end +end diff --git a/spec/factories/emails.rb b/spec/factories/emails.rb new file mode 100644 index 00000000000..ed072213153 --- /dev/null +++ b/spec/factories/emails.rb @@ -0,0 +1,14 @@ +FactoryGirl.define do + factory :email do + user + email do + FFaker::Internet.email('alias') + end + + factory :another_email do + email do + FFaker::Internet.email('another.alias') + end + end + end +end diff --git a/spec/factories/events.rb b/spec/factories/events.rb new file mode 100644 index 00000000000..90788f30ac9 --- /dev/null +++ b/spec/factories/events.rb @@ -0,0 +1,10 @@ +FactoryGirl.define do + factory :event do + factory :closed_issue_event do + project + action { Event::CLOSED } + target factory: :closed_issue + author factory: :user + end + end +end diff --git a/spec/factories/forked_project_links.rb b/spec/factories/forked_project_links.rb index 906e4106b32..252bf2747e1 100644 --- a/spec/factories/forked_project_links.rb +++ b/spec/factories/forked_project_links.rb @@ -9,8 +9,6 @@ # updated_at :datetime # -# Read about factories at https://github.com/thoughtbot/factory_girl - FactoryGirl.define do factory :forked_project_link do association :forked_to_project, factory: :project diff --git a/spec/factories/groups.rb b/spec/factories/groups.rb new file mode 100644 index 00000000000..4a3a155d7ff --- /dev/null +++ b/spec/factories/groups.rb @@ -0,0 +1,7 @@ +FactoryGirl.define do + factory :group do + sequence(:name) { |n| "group#{n}" } + path { name.downcase.gsub(/\s/, '_') } + type 'Group' + end +end diff --git a/spec/factories/identities.rb b/spec/factories/identities.rb new file mode 100644 index 00000000000..26ef6f18698 --- /dev/null +++ b/spec/factories/identities.rb @@ -0,0 +1,6 @@ +FactoryGirl.define do + factory :identity do + provider 'ldapmain' + extern_uid 'my-ldap-id' + end +end diff --git a/spec/factories/issues.rb b/spec/factories/issues.rb new file mode 100644 index 00000000000..722095de590 --- /dev/null +++ b/spec/factories/issues.rb @@ -0,0 +1,18 @@ +FactoryGirl.define do + factory :issue do + title + author + project + + trait :closed do + state :closed + end + + trait :reopened do + state :reopened + end + + factory :closed_issue, traits: [:closed] + factory :reopened_issue, traits: [:reopened] + end +end diff --git a/spec/factories/keys.rb b/spec/factories/keys.rb new file mode 100644 index 00000000000..d69c5b38d0a --- /dev/null +++ b/spec/factories/keys.rb @@ -0,0 +1,24 @@ +FactoryGirl.define do + factory :key do + title + key do + "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0= dummy@gitlab.com" + end + + factory :deploy_key, class: 'DeployKey' do + end + + factory :personal_key do + user + end + + factory :another_key do + key do + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDmTillFzNTrrGgwaCKaSj+QCz81E6jBc/s9av0+3b1Hwfxgkqjl4nAK/OD2NjgyrONDTDfR8cRN4eAAy6nY8GLkOyYBDyuc5nTMqs5z3yVuTwf3koGm/YQQCmo91psZ2BgDFTor8SVEE5Mm1D1k3JDMhDFxzzrOtRYFPci9lskTJaBjpqWZ4E9rDTD2q/QZntCqbC3wE9uSemRQB5f8kik7vD/AD8VQXuzKladrZKkzkONCPWsXDspUitjM8HkQdOf0PsYn1CMUC1xKYbCxkg5TkEosIwGv6CoEArUrdu/4+10LVslq494mAvEItywzrluCLCnwELfW+h/m8UHoVhZ" + end + + factory :another_deploy_key, class: 'DeployKey' do + end + end + end +end diff --git a/spec/factories/label_links.rb b/spec/factories/label_links.rb index bd304b5db6b..2939d4307c5 100644 --- a/spec/factories/label_links.rb +++ b/spec/factories/label_links.rb @@ -10,8 +10,6 @@ # updated_at :datetime # -# Read about factories at https://github.com/thoughtbot/factory_girl - FactoryGirl.define do factory :label_link do label diff --git a/spec/factories/labels.rb b/spec/factories/labels.rb index 8b12ee11af5..6e70af10af3 100644 --- a/spec/factories/labels.rb +++ b/spec/factories/labels.rb @@ -11,8 +11,6 @@ # template :boolean default(FALSE) # -# Read about factories at https://github.com/thoughtbot/factory_girl - FactoryGirl.define do factory :label do title "Bug" diff --git a/spec/factories/lfs_objects.rb b/spec/factories/lfs_objects.rb index 2da107ba24b..327858ce435 100644 --- a/spec/factories/lfs_objects.rb +++ b/spec/factories/lfs_objects.rb @@ -10,7 +10,7 @@ # file :string(255) # -# Read about factories at https://github.com/thoughtbot/factory_girl +include ActionDispatch::TestProcess FactoryGirl.define do factory :lfs_object do diff --git a/spec/factories/lfs_objects_projects.rb b/spec/factories/lfs_objects_projects.rb index 3772236a77a..50b45843c99 100644 --- a/spec/factories/lfs_objects_projects.rb +++ b/spec/factories/lfs_objects_projects.rb @@ -9,8 +9,6 @@ # updated_at :datetime # -# Read about factories at https://github.com/thoughtbot/factory_girl - FactoryGirl.define do factory :lfs_objects_project do lfs_object diff --git a/spec/factories/milestones.rb b/spec/factories/milestones.rb new file mode 100644 index 00000000000..e9e85962fe4 --- /dev/null +++ b/spec/factories/milestones.rb @@ -0,0 +1,12 @@ +FactoryGirl.define do + factory :milestone do + title + project + + trait :closed do + state :closed + end + + factory :closed_milestone, traits: [:closed] + end +end diff --git a/spec/factories/namespaces.rb b/spec/factories/namespaces.rb new file mode 100644 index 00000000000..1b1fc4ce80d --- /dev/null +++ b/spec/factories/namespaces.rb @@ -0,0 +1,7 @@ +FactoryGirl.define do + factory :namespace do + sequence(:name) { |n| "namespace#{n}" } + path { name.downcase.gsub(/\s/, '_') } + owner + end +end diff --git a/spec/factories/notes.rb b/spec/factories/notes.rb index 32c202891d8..e5dcb159014 100644 --- a/spec/factories/notes.rb +++ b/spec/factories/notes.rb @@ -21,6 +21,8 @@ require_relative '../support/repo_helpers' +include ActionDispatch::TestProcess + FactoryGirl.define do factory :note do project diff --git a/spec/factories/personal_snippets.rb b/spec/factories/personal_snippets.rb new file mode 100644 index 00000000000..b493a6968ff --- /dev/null +++ b/spec/factories/personal_snippets.rb @@ -0,0 +1,15 @@ +FactoryGirl.define do + factory :personal_snippet, parent: :snippet, class: :PersonalSnippet do + trait :public do + visibility_level PersonalSnippet::PUBLIC + end + + trait :internal do + visibility_level PersonalSnippet::INTERNAL + end + + trait :private do + visibility_level PersonalSnippet::PRIVATE + end + end +end diff --git a/spec/factories/project_hooks.rb b/spec/factories/project_hooks.rb new file mode 100644 index 00000000000..94dd935a039 --- /dev/null +++ b/spec/factories/project_hooks.rb @@ -0,0 +1,5 @@ +FactoryGirl.define do + factory :project_hook do + url { FFaker::Internet.uri('http') } + end +end diff --git a/spec/factories/project_members.rb b/spec/factories/project_members.rb new file mode 100644 index 00000000000..70fb7595c74 --- /dev/null +++ b/spec/factories/project_members.rb @@ -0,0 +1,7 @@ +FactoryGirl.define do + factory :project_member do + user + project + access_level { ProjectMember::MASTER } + end +end diff --git a/spec/factories/project_snippets.rb b/spec/factories/project_snippets.rb new file mode 100644 index 00000000000..154442bd3db --- /dev/null +++ b/spec/factories/project_snippets.rb @@ -0,0 +1,9 @@ +FactoryGirl.define do + factory :project_snippet do + project + author + title + content + file_name + end +end diff --git a/spec/factories/protected_branches.rb b/spec/factories/protected_branches.rb new file mode 100644 index 00000000000..28ed8078157 --- /dev/null +++ b/spec/factories/protected_branches.rb @@ -0,0 +1,6 @@ +FactoryGirl.define do + factory :protected_branch do + name + project + end +end diff --git a/spec/factories/releases.rb b/spec/factories/releases.rb index 43d09b17534..7f331c37256 100644 --- a/spec/factories/releases.rb +++ b/spec/factories/releases.rb @@ -10,8 +10,6 @@ # updated_at :datetime # -# Read about factories at https://github.com/thoughtbot/factory_girl - FactoryGirl.define do factory :release do tag "v1.1.0" diff --git a/spec/factories/sent_notifications.rb b/spec/factories/sent_notifications.rb new file mode 100644 index 00000000000..78eb929c6e7 --- /dev/null +++ b/spec/factories/sent_notifications.rb @@ -0,0 +1,8 @@ +FactoryGirl.define do + factory :sent_notification do + project + recipient factory: :user + noteable factory: :issue + reply_key "0123456789abcdef" * 2 + end +end diff --git a/spec/factories/service_hooks.rb b/spec/factories/service_hooks.rb new file mode 100644 index 00000000000..6dd6af63f3e --- /dev/null +++ b/spec/factories/service_hooks.rb @@ -0,0 +1,6 @@ +FactoryGirl.define do + factory :service_hook do + url { FFaker::Internet.uri('http') } + service + end +end diff --git a/spec/factories/services.rb b/spec/factories/services.rb new file mode 100644 index 00000000000..f7c285cff3a --- /dev/null +++ b/spec/factories/services.rb @@ -0,0 +1,7 @@ +FactoryGirl.define do + factory :service do + type "" + title "GitLab CI" + project + end +end diff --git a/spec/factories/snippets.rb b/spec/factories/snippets.rb new file mode 100644 index 00000000000..b9127b3d75e --- /dev/null +++ b/spec/factories/snippets.rb @@ -0,0 +1,16 @@ +FactoryGirl.define do + sequence :title, aliases: [:content] do + FFaker::Lorem.sentence + end + + sequence :file_name do + FFaker::Internet.user_name + end + + factory :snippet do + author + title + content + file_name + end +end diff --git a/spec/factories/spam_logs.rb b/spec/factories/spam_logs.rb index d90e5d6bf26..a4f6d291269 100644 --- a/spec/factories/spam_logs.rb +++ b/spec/factories/spam_logs.rb @@ -1,5 +1,3 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl - FactoryGirl.define do factory :spam_log do user diff --git a/spec/factories/system_hooks.rb b/spec/factories/system_hooks.rb new file mode 100644 index 00000000000..c786e9cb79b --- /dev/null +++ b/spec/factories/system_hooks.rb @@ -0,0 +1,5 @@ +FactoryGirl.define do + factory :system_hook do + url { FFaker::Internet.uri('http') } + end +end diff --git a/spec/factories/users.rb b/spec/factories/users.rb new file mode 100644 index 00000000000..785c2a3d811 --- /dev/null +++ b/spec/factories/users.rb @@ -0,0 +1,50 @@ +FactoryGirl.define do + sequence(:name) { FFaker::Name.name } + + factory :user, aliases: [:author, :assignee, :recipient, :owner, :creator] do + email { FFaker::Internet.email } + name + sequence(:username) { |n| "#{FFaker::Internet.user_name}#{n}" } + password "12345678" + confirmed_at { Time.now } + confirmation_token { nil } + can_create_group true + + trait :admin do + admin true + end + + trait :two_factor do + before(:create) do |user| + user.two_factor_enabled = true + user.otp_secret = User.generate_otp_secret(32) + user.otp_grace_period_started_at = Time.now + user.generate_otp_backup_codes! + end + end + + trait :with_avatar do + avatar { fixture_file_upload(Rails.root.join(*%w(spec fixtures dk.png)), 'image/png') } + avatar_crop_x 0 + avatar_crop_y 0 + avatar_crop_size 256 + end + + factory :omniauth_user do + transient do + extern_uid '123456' + provider 'ldapmain' + end + + after(:create) do |user, evaluator| + user.identities << create( + :identity, + provider: evaluator.provider, + extern_uid: evaluator.extern_uid + ) + end + end + + factory :admin, traits: [:admin] + end +end