summaryrefslogtreecommitdiff
path: root/spec/factories
diff options
context:
space:
mode:
Diffstat (limited to 'spec/factories')
-rw-r--r--spec/factories/chat_names.rb8
-rw-r--r--spec/factories/chat_teams.rb5
-rw-r--r--spec/factories/ci/builds.rb20
-rw-r--r--spec/factories/ci/pipeline_schedule.rb29
-rw-r--r--spec/factories/ci/pipelines.rb4
-rw-r--r--spec/factories/ci/runners.rb4
-rw-r--r--spec/factories/ci/triggers.rb9
-rw-r--r--spec/factories/ci/variables.rb2
-rw-r--r--spec/factories/container_repositories.rb33
-rw-r--r--spec/factories/emails.rb2
-rw-r--r--spec/factories/environments.rb15
-rw-r--r--spec/factories/group_members.rb6
-rw-r--r--spec/factories/groups.rb4
-rw-r--r--spec/factories/issues.rb10
-rw-r--r--spec/factories/keys.rb4
-rw-r--r--spec/factories/labels.rb11
-rw-r--r--spec/factories/merge_requests.rb10
-rw-r--r--spec/factories/merge_requests_closing_issues.rb6
-rw-r--r--spec/factories/notes.rb33
-rw-r--r--spec/factories/oauth_applications.rb4
-rw-r--r--spec/factories/personal_access_tokens.rb2
-rw-r--r--spec/factories/project_hooks.rb6
-rw-r--r--spec/factories/project_members.rb6
-rw-r--r--spec/factories/projects.rb16
-rw-r--r--spec/factories/protected_tags.rb22
-rw-r--r--spec/factories/sent_notifications.rb4
-rw-r--r--spec/factories/sequences.rb12
-rw-r--r--spec/factories/service_hooks.rb2
-rw-r--r--spec/factories/services.rb15
-rw-r--r--spec/factories/snippets.rb14
-rw-r--r--spec/factories/spam_logs.rb6
-rw-r--r--spec/factories/system_hooks.rb2
-rw-r--r--spec/factories/users.rb12
33 files changed, 274 insertions, 64 deletions
diff --git a/spec/factories/chat_names.rb b/spec/factories/chat_names.rb
index 24225468d55..9a0be1a4598 100644
--- a/spec/factories/chat_names.rb
+++ b/spec/factories/chat_names.rb
@@ -6,11 +6,7 @@ FactoryGirl.define do
team_id 'T0001'
team_domain 'Awesome Team'
- sequence :chat_id do |n|
- "U#{n}"
- end
- sequence :chat_name do |n|
- "user#{n}"
- end
+ sequence(:chat_id) { |n| "U#{n}" }
+ chat_name { generate(:username) }
end
end
diff --git a/spec/factories/chat_teams.rb b/spec/factories/chat_teams.rb
index 82f44fa3d15..ffedf69a69b 100644
--- a/spec/factories/chat_teams.rb
+++ b/spec/factories/chat_teams.rb
@@ -1,9 +1,6 @@
FactoryGirl.define do
factory :chat_team, class: ChatTeam do
- sequence :team_id do |n|
- "abcdefghijklm#{n}"
- end
-
+ sequence(:team_id) { |n| "abcdefghijklm#{n}" }
namespace factory: :group
end
end
diff --git a/spec/factories/ci/builds.rb b/spec/factories/ci/builds.rb
index f78086211f7..78ddd8d5584 100644
--- a/spec/factories/ci/builds.rb
+++ b/spec/factories/ci/builds.rb
@@ -79,6 +79,19 @@ FactoryGirl.define do
manual
end
+ trait :retryable do
+ success
+ end
+
+ trait :cancelable do
+ pending
+ end
+
+ trait :erasable do
+ success
+ artifacts
+ end
+
trait :tags do
tag_list [:docker, :ruby]
end
@@ -111,7 +124,7 @@ FactoryGirl.define do
trait :trace do
after(:create) do |build, evaluator|
- build.trace = 'BUILD TRACE'
+ build.trace.set('BUILD TRACE')
end
end
@@ -192,5 +205,10 @@ FactoryGirl.define do
trait :no_options do
options { {} }
end
+
+ trait :non_playable do
+ status 'created'
+ self.when 'manual'
+ end
end
end
diff --git a/spec/factories/ci/pipeline_schedule.rb b/spec/factories/ci/pipeline_schedule.rb
new file mode 100644
index 00000000000..a716da46ac6
--- /dev/null
+++ b/spec/factories/ci/pipeline_schedule.rb
@@ -0,0 +1,29 @@
+FactoryGirl.define do
+ factory :ci_pipeline_schedule, class: Ci::PipelineSchedule do
+ cron '0 1 * * *'
+ cron_timezone Gitlab::Ci::CronParser::VALID_SYNTAX_SAMPLE_TIME_ZONE
+ ref 'master'
+ active true
+ description "pipeline schedule"
+ project factory: :empty_project
+
+ trait :nightly do
+ cron '0 1 * * *'
+ cron_timezone Gitlab::Ci::CronParser::VALID_SYNTAX_SAMPLE_TIME_ZONE
+ end
+
+ trait :weekly do
+ cron '0 1 * * 6'
+ cron_timezone Gitlab::Ci::CronParser::VALID_SYNTAX_SAMPLE_TIME_ZONE
+ end
+
+ trait :monthly do
+ cron '0 1 22 * *'
+ cron_timezone Gitlab::Ci::CronParser::VALID_SYNTAX_SAMPLE_TIME_ZONE
+ end
+
+ trait :inactive do
+ active false
+ end
+ end
+end
diff --git a/spec/factories/ci/pipelines.rb b/spec/factories/ci/pipelines.rb
index b67c96bc00d..561fbc8e247 100644
--- a/spec/factories/ci/pipelines.rb
+++ b/spec/factories/ci/pipelines.rb
@@ -48,6 +48,10 @@ FactoryGirl.define do
trait :success do
status :success
end
+
+ trait :failed do
+ status :failed
+ end
end
end
end
diff --git a/spec/factories/ci/runners.rb b/spec/factories/ci/runners.rb
index c3b4aff55ba..05abf60d5ce 100644
--- a/spec/factories/ci/runners.rb
+++ b/spec/factories/ci/runners.rb
@@ -1,8 +1,6 @@
FactoryGirl.define do
factory :ci_runner, class: Ci::Runner do
- sequence :description do |n|
- "My runner#{n}"
- end
+ sequence(:description) { |n| "My runner#{n}" }
platform "darwin"
is_shared false
diff --git a/spec/factories/ci/triggers.rb b/spec/factories/ci/triggers.rb
index a27b04424e5..c3a29d8bf04 100644
--- a/spec/factories/ci/triggers.rb
+++ b/spec/factories/ci/triggers.rb
@@ -1,7 +1,14 @@
FactoryGirl.define do
factory :ci_trigger_without_token, class: Ci::Trigger do
factory :ci_trigger do
- token 'token'
+ sequence(:token) { |n| "token#{n}" }
+
+ factory :ci_trigger_for_trigger_schedule do
+ token { SecureRandom.hex(15) }
+ owner factory: :user
+ project factory: :project
+ ref 'master'
+ end
end
end
end
diff --git a/spec/factories/ci/variables.rb b/spec/factories/ci/variables.rb
index 6653f0bb5c3..c5fba597c1c 100644
--- a/spec/factories/ci/variables.rb
+++ b/spec/factories/ci/variables.rb
@@ -2,5 +2,7 @@ FactoryGirl.define do
factory :ci_variable, class: Ci::Variable do
sequence(:key) { |n| "VARIABLE_#{n}" }
value 'VARIABLE_VALUE'
+
+ project factory: :empty_project
end
end
diff --git a/spec/factories/container_repositories.rb b/spec/factories/container_repositories.rb
new file mode 100644
index 00000000000..3fcad9fd4b3
--- /dev/null
+++ b/spec/factories/container_repositories.rb
@@ -0,0 +1,33 @@
+FactoryGirl.define do
+ factory :container_repository do
+ name 'test_container_image'
+ project
+
+ transient do
+ tags []
+ end
+
+ trait :root do
+ name ''
+ end
+
+ after(:build) do |repository, evaluator|
+ next if evaluator.tags.to_a.none?
+
+ allow(repository.client)
+ .to receive(:repository_tags)
+ .and_return({
+ 'name' => repository.path,
+ 'tags' => evaluator.tags
+ })
+
+ evaluator.tags.each do |tag|
+ allow(repository.client)
+ .to receive(:repository_tag_digest)
+ .with(repository.path, tag)
+ .and_return('sha256:4c8e63ca4cb663ce6c688cb06f1c3' \
+ '72b088dac5b6d7ad7d49cd620d85cf72a15')
+ end
+ end
+ end
+end
diff --git a/spec/factories/emails.rb b/spec/factories/emails.rb
index 9794772ac7d..8303861bcfe 100644
--- a/spec/factories/emails.rb
+++ b/spec/factories/emails.rb
@@ -1,6 +1,6 @@
FactoryGirl.define do
factory :email do
user
- email { FFaker::Internet.email('alias') }
+ email { generate(:email_alias) }
end
end
diff --git a/spec/factories/environments.rb b/spec/factories/environments.rb
index 0852dda6b29..d8d699fb3aa 100644
--- a/spec/factories/environments.rb
+++ b/spec/factories/environments.rb
@@ -18,19 +18,30 @@ FactoryGirl.define do
# interconnected objects to simulate a review app.
#
after(:create) do |environment, evaluator|
+ pipeline = create(:ci_pipeline, project: environment.project)
+
+ deployable = create(:ci_build, name: "#{environment.name}:deploy",
+ pipeline: pipeline)
+
deployment = create(:deployment,
environment: environment,
project: environment.project,
+ deployable: deployable,
ref: evaluator.ref,
sha: environment.project.commit(evaluator.ref).id)
teardown_build = create(:ci_build, :manual,
- name: "#{deployment.environment.name}:teardown",
- pipeline: deployment.deployable.pipeline)
+ name: "#{environment.name}:teardown",
+ pipeline: pipeline)
deployment.update_column(:on_stop, teardown_build.name)
environment.update_attribute(:deployments, [deployment])
end
end
+
+ trait :non_playable do
+ status 'created'
+ self.when 'manual'
+ end
end
end
diff --git a/spec/factories/group_members.rb b/spec/factories/group_members.rb
index 080b2e75ea1..32cbfe28a60 100644
--- a/spec/factories/group_members.rb
+++ b/spec/factories/group_members.rb
@@ -10,5 +10,11 @@ FactoryGirl.define do
trait(:master) { access_level GroupMember::MASTER }
trait(:owner) { access_level GroupMember::OWNER }
trait(:access_request) { requested_at Time.now }
+
+ trait(:invited) do
+ user_id nil
+ invite_token 'xxx'
+ invite_email 'email@email.com'
+ end
end
end
diff --git a/spec/factories/groups.rb b/spec/factories/groups.rb
index 86f51ffca99..52f76b094a3 100644
--- a/spec/factories/groups.rb
+++ b/spec/factories/groups.rb
@@ -17,6 +17,10 @@ FactoryGirl.define do
visibility_level Gitlab::VisibilityLevel::PRIVATE
end
+ trait :with_avatar do
+ avatar { File.open(Rails.root.join('spec/fixtures/dk.png')) }
+ end
+
trait :access_requestable do
request_access_enabled true
end
diff --git a/spec/factories/issues.rb b/spec/factories/issues.rb
index 7e09f1ba8ea..f1fd1fd7f73 100644
--- a/spec/factories/issues.rb
+++ b/spec/factories/issues.rb
@@ -1,10 +1,6 @@
FactoryGirl.define do
- sequence :issue_created_at do |n|
- 4.hours.ago + ( 2 * n ).seconds
- end
-
factory :issue do
- title
+ title { generate(:title) }
author
project factory: :empty_project
@@ -12,6 +8,10 @@ FactoryGirl.define do
confidential true
end
+ trait :opened do
+ state :opened
+ end
+
trait :closed do
state :closed
end
diff --git a/spec/factories/keys.rb b/spec/factories/keys.rb
index dd93b439b2b..4e140102492 100644
--- a/spec/factories/keys.rb
+++ b/spec/factories/keys.rb
@@ -23,5 +23,9 @@ FactoryGirl.define do
factory :another_deploy_key, class: 'DeployKey' do
end
end
+
+ factory :write_access_key, class: 'DeployKey' do
+ can_push true
+ end
end
end
diff --git a/spec/factories/labels.rb b/spec/factories/labels.rb
index 5ba8443c62c..22c2a1f15e2 100644
--- a/spec/factories/labels.rb
+++ b/spec/factories/labels.rb
@@ -1,7 +1,10 @@
FactoryGirl.define do
- factory :label, class: ProjectLabel do
- sequence(:title) { |n| "label#{n}" }
+ trait :base_label do
+ title { generate(:label_title) }
color "#990000"
+ end
+
+ factory :label, traits: [:base_label], class: ProjectLabel do
project factory: :empty_project
transient do
@@ -15,9 +18,7 @@ FactoryGirl.define do
end
end
- factory :group_label, class: GroupLabel do
- sequence(:title) { |n| "label#{n}" }
- color "#990000"
+ factory :group_label, traits: [:base_label] do
group
end
end
diff --git a/spec/factories/merge_requests.rb b/spec/factories/merge_requests.rb
index ae0bbbd6aeb..253a025af48 100644
--- a/spec/factories/merge_requests.rb
+++ b/spec/factories/merge_requests.rb
@@ -1,6 +1,6 @@
FactoryGirl.define do
factory :merge_request do
- title
+ title { generate(:title) }
author
association :source_project, :repository, factory: :project
target_project { source_project }
@@ -40,10 +40,18 @@ FactoryGirl.define do
state :closed
end
+ trait :opened do
+ state :opened
+ end
+
trait :reopened do
state :reopened
end
+ trait :locked do
+ state :locked
+ end
+
trait :simple do
source_branch "feature"
target_branch "master"
diff --git a/spec/factories/merge_requests_closing_issues.rb b/spec/factories/merge_requests_closing_issues.rb
new file mode 100644
index 00000000000..fdbdc00cad7
--- /dev/null
+++ b/spec/factories/merge_requests_closing_issues.rb
@@ -0,0 +1,6 @@
+FactoryGirl.define do
+ factory :merge_requests_closing_issues do
+ issue
+ merge_request
+ end
+end
diff --git a/spec/factories/notes.rb b/spec/factories/notes.rb
index fe19a404e16..046974dcd6e 100644
--- a/spec/factories/notes.rb
+++ b/spec/factories/notes.rb
@@ -5,7 +5,7 @@ include ActionDispatch::TestProcess
FactoryGirl.define do
factory :note do
project factory: :empty_project
- note "Note"
+ note { generate(:title) }
author
on_issue
@@ -16,10 +16,23 @@ FactoryGirl.define do
factory :note_on_personal_snippet, traits: [:on_personal_snippet]
factory :system_note, traits: [:system]
- factory :legacy_diff_note_on_commit, traits: [:on_commit, :legacy_diff_note], class: LegacyDiffNote do
+ factory :discussion_note_on_merge_request, traits: [:on_merge_request], class: DiscussionNote do
association :project, :repository
+
+ trait :resolved do
+ resolved_at { Time.now }
+ resolved_by { create(:user) }
+ end
end
+ factory :discussion_note_on_issue, traits: [:on_issue], class: DiscussionNote
+
+ factory :discussion_note_on_commit, traits: [:on_commit], class: DiscussionNote
+
+ factory :discussion_note_on_personal_snippet, traits: [:on_personal_snippet], class: DiscussionNote
+
+ factory :legacy_diff_note_on_commit, traits: [:on_commit, :legacy_diff_note], class: LegacyDiffNote
+
factory :legacy_diff_note_on_merge_request, traits: [:on_merge_request, :legacy_diff_note], class: LegacyDiffNote do
association :project, :repository
end
@@ -29,6 +42,7 @@ FactoryGirl.define do
transient do
line_number 14
+ diff_refs { noteable.try(:diff_refs) }
end
position do
@@ -37,7 +51,7 @@ FactoryGirl.define do
new_path: "files/ruby/popen.rb",
old_line: nil,
new_line: line_number,
- diff_refs: noteable.diff_refs
+ diff_refs: diff_refs
)
end
@@ -108,5 +122,18 @@ FactoryGirl.define do
trait :with_svg_attachment do
attachment { fixture_file_upload(Rails.root + "spec/fixtures/unsanitized.svg", "image/svg+xml") }
end
+
+ transient do
+ in_reply_to nil
+ end
+
+ before(:create) do |note, evaluator|
+ discussion = evaluator.in_reply_to
+ next unless discussion
+ discussion = discussion.to_discussion if discussion.is_a?(Note)
+ next unless discussion
+
+ note.assign_attributes(discussion.reply_attributes.merge(project: discussion.project))
+ end
end
end
diff --git a/spec/factories/oauth_applications.rb b/spec/factories/oauth_applications.rb
index 86cdc208268..c7ede40f240 100644
--- a/spec/factories/oauth_applications.rb
+++ b/spec/factories/oauth_applications.rb
@@ -1,8 +1,8 @@
FactoryGirl.define do
factory :oauth_application, class: 'Doorkeeper::Application', aliases: [:application] do
- name { FFaker::Name.name }
+ sequence(:name) { |n| "OAuth App #{n}" }
uid { Doorkeeper::OAuth::Helpers::UniqueToken.generate }
- redirect_uri { FFaker::Internet.uri('http') }
+ redirect_uri { generate(:url) }
owner
owner_type 'User'
end
diff --git a/spec/factories/personal_access_tokens.rb b/spec/factories/personal_access_tokens.rb
index 7b15ba47de1..06acaff6cd0 100644
--- a/spec/factories/personal_access_tokens.rb
+++ b/spec/factories/personal_access_tokens.rb
@@ -2,7 +2,7 @@ FactoryGirl.define do
factory :personal_access_token do
user
token { SecureRandom.hex(50) }
- name { FFaker::Product.brand }
+ sequence(:name) { |n| "PAT #{n}" }
revoked false
expires_at { 5.days.from_now }
scopes ['api']
diff --git a/spec/factories/project_hooks.rb b/spec/factories/project_hooks.rb
index 424ecc65759..cd754ea235f 100644
--- a/spec/factories/project_hooks.rb
+++ b/spec/factories/project_hooks.rb
@@ -1,6 +1,7 @@
FactoryGirl.define do
factory :project_hook do
- url { FFaker::Internet.uri('http') }
+ url { generate(:url) }
+ enable_ssl_verification false
trait :token do
token { SecureRandom.hex(10) }
@@ -11,8 +12,9 @@ FactoryGirl.define do
merge_requests_events true
tag_push_events true
issues_events true
+ confidential_issues_events true
note_events true
- build_events true
+ job_events true
pipeline_events true
wiki_page_events true
end
diff --git a/spec/factories/project_members.rb b/spec/factories/project_members.rb
index d62799a5a47..fe4518caadf 100644
--- a/spec/factories/project_members.rb
+++ b/spec/factories/project_members.rb
@@ -9,5 +9,11 @@ FactoryGirl.define do
trait(:developer) { access_level ProjectMember::DEVELOPER }
trait(:master) { access_level ProjectMember::MASTER }
trait(:access_request) { requested_at Time.now }
+
+ trait(:invited) do
+ user_id nil
+ invite_token 'xxx'
+ invite_email 'email@email.com'
+ end
end
end
diff --git a/spec/factories/projects.rb b/spec/factories/projects.rb
index 0db2fe04edd..7a76f5f8afc 100644
--- a/spec/factories/projects.rb
+++ b/spec/factories/projects.rb
@@ -32,6 +32,10 @@ FactoryGirl.define do
request_access_enabled true
end
+ trait :with_avatar do
+ avatar { File.open(Rails.root.join('spec/fixtures/dk.png')) }
+ end
+
trait :repository do
# no-op... for now!
end
@@ -56,7 +60,9 @@ FactoryGirl.define do
trait :test_repo do
after :create do |project|
- TestEnv.copy_repo(project)
+ TestEnv.copy_repo(project,
+ bare_repo: TestEnv.factory_repo_path_bare,
+ refs: TestEnv::BRANCH_SHA)
end
end
@@ -135,7 +141,9 @@ FactoryGirl.define do
end
after :create do |project, evaluator|
- TestEnv.copy_repo(project)
+ TestEnv.copy_repo(project,
+ bare_repo: TestEnv.factory_repo_path_bare,
+ refs: TestEnv::BRANCH_SHA)
if evaluator.create_template
args = evaluator.create_template
@@ -168,7 +176,9 @@ FactoryGirl.define do
path { 'forked-gitlabhq' }
after :create do |project|
- TestEnv.copy_forked_repo_with_submodules(project)
+ TestEnv.copy_repo(project,
+ bare_repo: TestEnv.forked_repo_path_bare,
+ refs: TestEnv::FORKED_BRANCH_SHA)
end
end
diff --git a/spec/factories/protected_tags.rb b/spec/factories/protected_tags.rb
new file mode 100644
index 00000000000..d8e90ae1ee1
--- /dev/null
+++ b/spec/factories/protected_tags.rb
@@ -0,0 +1,22 @@
+FactoryGirl.define do
+ factory :protected_tag do
+ name
+ project
+
+ after(:build) do |protected_tag|
+ protected_tag.create_access_levels.new(access_level: Gitlab::Access::MASTER)
+ end
+
+ trait :developers_can_create do
+ after(:create) do |protected_tag|
+ protected_tag.create_access_levels.first.update!(access_level: Gitlab::Access::DEVELOPER)
+ end
+ end
+
+ trait :no_one_can_create do
+ after(:create) do |protected_tag|
+ protected_tag.create_access_levels.first.update!(access_level: Gitlab::Access::NO_ACCESS)
+ end
+ end
+ end
+end
diff --git a/spec/factories/sent_notifications.rb b/spec/factories/sent_notifications.rb
index 6287c40afe9..99253be5a22 100644
--- a/spec/factories/sent_notifications.rb
+++ b/spec/factories/sent_notifications.rb
@@ -2,7 +2,7 @@ FactoryGirl.define do
factory :sent_notification do
project factory: :empty_project
recipient factory: :user
- noteable factory: :issue
- reply_key "0123456789abcdef" * 2
+ noteable { create(:issue, project: project) }
+ reply_key { SentNotification.reply_key }
end
end
diff --git a/spec/factories/sequences.rb b/spec/factories/sequences.rb
new file mode 100644
index 00000000000..c0232ba5bf6
--- /dev/null
+++ b/spec/factories/sequences.rb
@@ -0,0 +1,12 @@
+FactoryGirl.define do
+ sequence(:username) { |n| "user#{n}" }
+ sequence(:name) { |n| "John Doe#{n}" }
+ sequence(:email) { |n| "user#{n}@example.org" }
+ sequence(:email_alias) { |n| "user.alias#{n}@example.org" }
+ sequence(:title) { |n| "My title #{n}" }
+ sequence(:filename) { |n| "filename-#{n}.rb" }
+ sequence(:url) { |n| "http://example#{n}.org" }
+ sequence(:label_title) { |n| "label#{n}" }
+ sequence(:branch) { |n| "my-branch-#{n}" }
+ sequence(:past_time) { |n| 4.hours.ago + (2 * n).seconds }
+end
diff --git a/spec/factories/service_hooks.rb b/spec/factories/service_hooks.rb
index 6dd6af63f3e..e3f88ab8fcc 100644
--- a/spec/factories/service_hooks.rb
+++ b/spec/factories/service_hooks.rb
@@ -1,6 +1,6 @@
FactoryGirl.define do
factory :service_hook do
- url { FFaker::Internet.uri('http') }
+ url { generate(:url) }
service
end
end
diff --git a/spec/factories/services.rb b/spec/factories/services.rb
index 88f6c265505..28ddd0da753 100644
--- a/spec/factories/services.rb
+++ b/spec/factories/services.rb
@@ -1,6 +1,19 @@
FactoryGirl.define do
factory :service do
project factory: :empty_project
+ type 'Service'
+ end
+
+ factory :custom_issue_tracker_service, class: CustomIssueTrackerService do
+ project factory: :empty_project
+ type 'CustomIssueTrackerService'
+ category 'issue_tracker'
+ active true
+ properties(
+ project_url: 'https://project.url.com',
+ issues_url: 'https://issues.url.com',
+ new_issue_url: 'https://newissue.url.com'
+ )
end
factory :kubernetes_service do
@@ -9,7 +22,7 @@ FactoryGirl.define do
properties({
namespace: 'somepath',
api_url: 'https://kubernetes.example.com',
- token: 'a' * 40,
+ token: 'a' * 40
})
end
diff --git a/spec/factories/snippets.rb b/spec/factories/snippets.rb
index 365f12a0c95..18cb0f5de26 100644
--- a/spec/factories/snippets.rb
+++ b/spec/factories/snippets.rb
@@ -1,17 +1,9 @@
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
+ title { generate(:title) }
+ content { generate(:title) }
+ file_name { generate(:filename) }
trait :public do
visibility_level Snippet::PUBLIC
diff --git a/spec/factories/spam_logs.rb b/spec/factories/spam_logs.rb
index a4f6d291269..e369f9f13e9 100644
--- a/spec/factories/spam_logs.rb
+++ b/spec/factories/spam_logs.rb
@@ -1,9 +1,9 @@
FactoryGirl.define do
factory :spam_log do
user
- source_ip { FFaker::Internet.ip_v4_address }
+ sequence(:source_ip) { |n| "42.42.42.#{n % 255}" }
noteable_type 'Issue'
- title { FFaker::Lorem.sentence }
- description { FFaker::Lorem.paragraph(5) }
+ sequence(:title) { |n| "Spam title #{n}" }
+ description { "Spam description\nwith\nmultiple\nlines" }
end
end
diff --git a/spec/factories/system_hooks.rb b/spec/factories/system_hooks.rb
index c786e9cb79b..841e1e293e8 100644
--- a/spec/factories/system_hooks.rb
+++ b/spec/factories/system_hooks.rb
@@ -1,5 +1,5 @@
FactoryGirl.define do
factory :system_hook do
- url { FFaker::Internet.uri('http') }
+ url { generate(:url) }
end
end
diff --git a/spec/factories/users.rb b/spec/factories/users.rb
index 249dabbaae8..33fa80772ff 100644
--- a/spec/factories/users.rb
+++ b/spec/factories/users.rb
@@ -1,10 +1,8 @@
FactoryGirl.define do
- sequence(:name) { FFaker::Name.name }
-
factory :user, aliases: [:author, :assignee, :recipient, :owner, :creator, :resource_owner] do
- email { FFaker::Internet.email }
- name
- sequence(:username) { |n| "#{FFaker::Internet.user_name}#{n}" }
+ email { generate(:email) }
+ name { generate(:name) }
+ username { generate(:username) }
password "12345678"
confirmed_at { Time.now }
confirmation_token { nil }
@@ -31,6 +29,10 @@ FactoryGirl.define do
after(:build) { |user, _| user.block! }
end
+ trait :with_avatar do
+ avatar { File.open(Rails.root.join('spec/fixtures/dk.png')) }
+ end
+
trait :two_factor_via_otp do
before(:create) do |user|
user.otp_required_for_login = true