BigW Consortium Gitlab

Commit 4af9d592 by Rémy Coutable

Replace factory_girl_rails with factory_bot_rails

I've followed the [upgrade guide](https://github.com/thoughtbot/factory_bot/blob/4-9-0-stable/UPGRADE_FROM_FACTORY_GIRL.md) and ran these two commands: ``` grep -e FactoryGirl **/*.rake **/*.rb -s -l | xargs sed -i "" "s|FactoryGirl|FactoryBot|" grep -e factory_girl **/*.rake **/*.rb -s -l | xargs sed -i "" "s|factory_girl|factory_bot|" ``` Signed-off-by: 's avatarRémy Coutable <remy@rymai.me>
parent f5114187
...@@ -311,7 +311,7 @@ group :development, :test do ...@@ -311,7 +311,7 @@ group :development, :test do
gem 'fuubar', '~> 2.2.0' gem 'fuubar', '~> 2.2.0'
gem 'database_cleaner', '~> 1.5.0' gem 'database_cleaner', '~> 1.5.0'
gem 'factory_girl_rails', '~> 4.7.0' gem 'factory_bot_rails', '~> 4.8.2'
gem 'rspec-rails', '~> 3.6.0' gem 'rspec-rails', '~> 3.6.0'
gem 'rspec-retry', '~> 0.4.5' gem 'rspec-retry', '~> 0.4.5'
gem 'spinach-rails', '~> 0.2.1' gem 'spinach-rails', '~> 0.2.1'
......
...@@ -195,10 +195,10 @@ GEM ...@@ -195,10 +195,10 @@ GEM
excon (0.57.1) excon (0.57.1)
execjs (2.6.0) execjs (2.6.0)
expression_parser (0.9.0) expression_parser (0.9.0)
factory_girl (4.7.0) factory_bot (4.8.2)
activesupport (>= 3.0.0) activesupport (>= 3.0.0)
factory_girl_rails (4.7.0) factory_bot_rails (4.8.2)
factory_girl (~> 4.7.0) factory_bot (~> 4.8.2)
railties (>= 3.0.0) railties (>= 3.0.0)
faraday (0.12.2) faraday (0.12.2)
multipart-post (>= 1.2, < 3) multipart-post (>= 1.2, < 3)
...@@ -1017,7 +1017,7 @@ DEPENDENCIES ...@@ -1017,7 +1017,7 @@ DEPENDENCIES
dropzonejs-rails (~> 0.7.1) dropzonejs-rails (~> 0.7.1)
email_reply_trimmer (~> 0.1) email_reply_trimmer (~> 0.1)
email_spec (~> 1.6.0) email_spec (~> 1.6.0)
factory_girl_rails (~> 4.7.0) factory_bot_rails (~> 4.8.2)
faraday (~> 0.12) faraday (~> 0.12)
ffaker (~> 2.4) ffaker (~> 2.4)
flay (~> 2.8.0) flay (~> 2.8.0)
......
...@@ -11,7 +11,7 @@ class Projects::NotesController < Projects::ApplicationController ...@@ -11,7 +11,7 @@ class Projects::NotesController < Projects::ApplicationController
# Controller actions are returned from AbstractController::Base and methods of parent classes are # Controller actions are returned from AbstractController::Base and methods of parent classes are
# excluded in order to return only specific controller related methods. # excluded in order to return only specific controller related methods.
# That is ok for the app (no :create method in ancestors) # That is ok for the app (no :create method in ancestors)
# but fails for tests because there is a :create method on FactoryGirl (one of the ancestors) # but fails for tests because there is a :create method on FactoryBot (one of the ancestors)
# #
# see https://github.com/rails/rails/blob/v4.2.7/actionpack/lib/abstract_controller/base.rb#L78 # see https://github.com/rails/rails/blob/v4.2.7/actionpack/lib/abstract_controller/base.rb#L78
# #
......
...@@ -159,7 +159,7 @@ module Gitlab ...@@ -159,7 +159,7 @@ module Gitlab
config.middleware.insert_after ActionDispatch::Flash, 'Gitlab::Middleware::ReadOnly' config.middleware.insert_after ActionDispatch::Flash, 'Gitlab::Middleware::ReadOnly'
config.generators do |g| config.generators do |g|
g.factory_girl false g.factory_bot false
end end
config.after_initialize do config.after_initialize do
......
...@@ -140,8 +140,8 @@ class Gitlab::Seeder::CycleAnalytics ...@@ -140,8 +140,8 @@ class Gitlab::Seeder::CycleAnalytics
issue.update(milestone: @project.milestones.sample) issue.update(milestone: @project.milestones.sample)
else else
label_name = "#{FFaker::Product.brand}-#{FFaker::Product.brand}-#{rand(1000)}" label_name = "#{FFaker::Product.brand}-#{FFaker::Product.brand}-#{rand(1000)}"
list_label = FactoryGirl.create(:label, title: label_name, project: issue.project) list_label = FactoryBot.create(:label, title: label_name, project: issue.project)
FactoryGirl.create(:list, board: FactoryGirl.create(:board, project: issue.project), label: list_label) FactoryBot.create(:list, board: FactoryBot.create(:board, project: issue.project), label: list_label)
issue.update(labels: [list_label]) issue.update(labels: [list_label])
end end
......
...@@ -8,7 +8,7 @@ might encounter or should avoid during development of GitLab CE and EE. ...@@ -8,7 +8,7 @@ might encounter or should avoid during development of GitLab CE and EE.
Consider the following factory: Consider the following factory:
```ruby ```ruby
FactoryGirl.define do FactoryBot.define do
factory :label do factory :label do
sequence(:title) { |n| "label#{n}" } sequence(:title) { |n| "label#{n}" }
end end
...@@ -53,7 +53,7 @@ When run, this spec doesn't do what we might expect: ...@@ -53,7 +53,7 @@ When run, this spec doesn't do what we might expect:
(compared using ==) (compared using ==)
``` ```
That's because FactoryGirl sequences are not reseted for each example. That's because FactoryBot sequences are not reseted for each example.
Please remember that sequence-generated values exist only to avoid having to Please remember that sequence-generated values exist only to avoid having to
explicitly set attributes that have a uniqueness constraint when using a factory. explicitly set attributes that have a uniqueness constraint when using a factory.
......
...@@ -8,8 +8,8 @@ and effective _as well as_ fast. ...@@ -8,8 +8,8 @@ and effective _as well as_ fast.
Here are some things to keep in mind regarding test performance: Here are some things to keep in mind regarding test performance:
- `double` and `spy` are faster than `FactoryGirl.build(...)` - `double` and `spy` are faster than `FactoryBot.build(...)`
- `FactoryGirl.build(...)` and `.build_stubbed` are faster than `.create`. - `FactoryBot.build(...)` and `.build_stubbed` are faster than `.create`.
- Don't `create` an object when `build`, `build_stubbed`, `attributes_for`, - Don't `create` an object when `build`, `build_stubbed`, `attributes_for`,
`spy`, or `double` will do. Database persistence is slow! `spy`, or `double` will do. Database persistence is slow!
- Don't mark a feature as requiring JavaScript (through `@javascript` in - Don't mark a feature as requiring JavaScript (through `@javascript` in
...@@ -254,13 +254,13 @@ end ...@@ -254,13 +254,13 @@ end
### Factories ### Factories
GitLab uses [factory_girl] as a test fixture replacement. GitLab uses [factory_bot] as a test fixture replacement.
- Factory definitions live in `spec/factories/`, named using the pluralization - Factory definitions live in `spec/factories/`, named using the pluralization
of their corresponding model (`User` factories are defined in `users.rb`). of their corresponding model (`User` factories are defined in `users.rb`).
- There should be only one top-level factory definition per file. - There should be only one top-level factory definition per file.
- FactoryGirl methods are mixed in to all RSpec groups. This means you can (and - FactoryBot methods are mixed in to all RSpec groups. This means you can (and
should) call `create(...)` instead of `FactoryGirl.create(...)`. should) call `create(...)` instead of `FactoryBot.create(...)`.
- Make use of [traits] to clean up definitions and usages. - Make use of [traits] to clean up definitions and usages.
- When defining a factory, don't define attributes that are not required for the - When defining a factory, don't define attributes that are not required for the
resulting record to pass validation. resulting record to pass validation.
...@@ -269,8 +269,8 @@ GitLab uses [factory_girl] as a test fixture replacement. ...@@ -269,8 +269,8 @@ GitLab uses [factory_girl] as a test fixture replacement.
- Factories don't have to be limited to `ActiveRecord` objects. - Factories don't have to be limited to `ActiveRecord` objects.
[See example](https://gitlab.com/gitlab-org/gitlab-ce/commit/0b8cefd3b2385a21cfed779bd659978c0402766d). [See example](https://gitlab.com/gitlab-org/gitlab-ce/commit/0b8cefd3b2385a21cfed779bd659978c0402766d).
[factory_girl]: https://github.com/thoughtbot/factory_girl [factory_bot]: https://github.com/thoughtbot/factory_bot
[traits]: http://www.rubydoc.info/gems/factory_girl/file/GETTING_STARTED.md#Traits [traits]: http://www.rubydoc.info/gems/factory_bot/file/GETTING_STARTED.md#Traits
### Fixtures ### Fixtures
......
...@@ -33,7 +33,7 @@ changes should be tested. ...@@ -33,7 +33,7 @@ changes should be tested.
## [Testing best practices](best_practices.md) ## [Testing best practices](best_practices.md)
Everything you should know about how to write good tests: RSpec, FactoryGirl, Everything you should know about how to write good tests: RSpec, FactoryBot,
system tests, parameterized tests etc. system tests, parameterized tests etc.
--- ---
......
...@@ -27,7 +27,7 @@ Spinach.hooks.before_run do ...@@ -27,7 +27,7 @@ Spinach.hooks.before_run do
# web editor and merge # web editor and merge
TestEnv.disable_pre_receive TestEnv.disable_pre_receive
include FactoryGirl::Syntax::Methods include FactoryBot::Syntax::Methods
include GitlabRoutingHelper include GitlabRoutingHelper
end end
......
FactoryGirl.define do FactoryBot.define do
factory :abuse_report do factory :abuse_report do
reporter factory: :user reporter factory: :user
user user
......
# Read about factories at https://github.com/thoughtbot/factory_girl # Read about factories at https://github.com/thoughtbot/factory_bot
FactoryGirl.define do FactoryBot.define do
factory :appearance do factory :appearance do
title "MepMep" title "MepMep"
description "This is my Community Edition instance" description "This is my Community Edition instance"
......
FactoryGirl.define do FactoryBot.define do
factory :application_setting do factory :application_setting do
end end
end end
FactoryGirl.define do FactoryBot.define do
factory :award_emoji do factory :award_emoji do
name "thumbsup" name "thumbsup"
user user
......
FactoryGirl.define do FactoryBot.define do
factory :board do factory :board do
project project
......
FactoryGirl.define do FactoryBot.define do
factory :broadcast_message do factory :broadcast_message do
message "MyText" message "MyText"
starts_at 1.day.ago starts_at 1.day.ago
......
FactoryGirl.define do FactoryBot.define do
factory :chat_name, class: ChatName do factory :chat_name, class: ChatName do
user factory: :user user factory: :user
service factory: :service service factory: :service
......
FactoryGirl.define do FactoryBot.define do
factory :chat_team, class: ChatTeam do factory :chat_team, class: ChatTeam do
sequence(:team_id) { |n| "abcdefghijklm#{n}" } sequence(:team_id) { |n| "abcdefghijklm#{n}" }
namespace factory: :group namespace factory: :group
......
FactoryGirl.define do FactoryBot.define do
factory :ci_build_trace_section_name, class: Ci::BuildTraceSectionName do factory :ci_build_trace_section_name, class: Ci::BuildTraceSectionName do
sequence(:name) { |n| "section_#{n}" } sequence(:name) { |n| "section_#{n}" }
project factory: :project project factory: :project
......
include ActionDispatch::TestProcess include ActionDispatch::TestProcess
FactoryGirl.define do FactoryBot.define do
factory :ci_build, class: Ci::Build do factory :ci_build, class: Ci::Build do
name 'test' name 'test'
stage 'test' stage 'test'
......
FactoryGirl.define do FactoryBot.define do
factory :ci_group_variable, class: Ci::GroupVariable do factory :ci_group_variable, class: Ci::GroupVariable do
sequence(:key) { |n| "VARIABLE_#{n}" } sequence(:key) { |n| "VARIABLE_#{n}" }
value 'VARIABLE_VALUE' value 'VARIABLE_VALUE'
......
include ActionDispatch::TestProcess include ActionDispatch::TestProcess
FactoryGirl.define do FactoryBot.define do
factory :ci_job_artifact, class: Ci::JobArtifact do factory :ci_job_artifact, class: Ci::JobArtifact do
job factory: :ci_build job factory: :ci_build
file_type :archive file_type :archive
......
FactoryGirl.define do FactoryBot.define do
factory :ci_pipeline_schedule, class: Ci::PipelineSchedule do factory :ci_pipeline_schedule, class: Ci::PipelineSchedule do
cron '0 1 * * *' cron '0 1 * * *'
cron_timezone Gitlab::Ci::CronParser::VALID_SYNTAX_SAMPLE_TIME_ZONE cron_timezone Gitlab::Ci::CronParser::VALID_SYNTAX_SAMPLE_TIME_ZONE
......
FactoryGirl.define do FactoryBot.define do
factory :ci_pipeline_schedule_variable, class: Ci::PipelineScheduleVariable do factory :ci_pipeline_schedule_variable, class: Ci::PipelineScheduleVariable do
sequence(:key) { |n| "VARIABLE_#{n}" } sequence(:key) { |n| "VARIABLE_#{n}" }
value 'VARIABLE_VALUE' value 'VARIABLE_VALUE'
......
FactoryGirl.define do FactoryBot.define do
factory :ci_pipeline_variable, class: Ci::PipelineVariable do factory :ci_pipeline_variable, class: Ci::PipelineVariable do
sequence(:key) { |n| "VARIABLE_#{n}" } sequence(:key) { |n| "VARIABLE_#{n}" }
value 'VARIABLE_VALUE' value 'VARIABLE_VALUE'
......
FactoryGirl.define do FactoryBot.define do
factory :ci_empty_pipeline, class: Ci::Pipeline do factory :ci_empty_pipeline, class: Ci::Pipeline do
source :push source :push
ref 'master' ref 'master'
......
FactoryGirl.define do FactoryBot.define do
factory :ci_runner_project, class: Ci::RunnerProject do factory :ci_runner_project, class: Ci::RunnerProject do
runner factory: :ci_runner runner factory: :ci_runner
project project
......
FactoryGirl.define do FactoryBot.define do
factory :ci_runner, class: Ci::Runner do factory :ci_runner, class: Ci::Runner do
sequence(:description) { |n| "My runner#{n}" } sequence(:description) { |n| "My runner#{n}" }
......
FactoryGirl.define do FactoryBot.define do
factory :ci_stage, class: Ci::LegacyStage do factory :ci_stage, class: Ci::LegacyStage do
skip_create skip_create
......
FactoryGirl.define do FactoryBot.define do
factory :ci_trigger_request, class: Ci::TriggerRequest do factory :ci_trigger_request, class: Ci::TriggerRequest do
trigger factory: :ci_trigger trigger factory: :ci_trigger
end end
......
FactoryGirl.define do FactoryBot.define do
factory :ci_trigger_without_token, class: Ci::Trigger do factory :ci_trigger_without_token, class: Ci::Trigger do
owner owner
......
FactoryGirl.define do FactoryBot.define do
factory :ci_variable, class: Ci::Variable do factory :ci_variable, class: Ci::Variable do
sequence(:key) { |n| "VARIABLE_#{n}" } sequence(:key) { |n| "VARIABLE_#{n}" }
value 'VARIABLE_VALUE' value 'VARIABLE_VALUE'
......
FactoryGirl.define do FactoryBot.define do
factory :cluster_applications_helm, class: Clusters::Applications::Helm do factory :cluster_applications_helm, class: Clusters::Applications::Helm do
cluster factory: %i(cluster provided_by_gcp) cluster factory: %i(cluster provided_by_gcp)
......
FactoryGirl.define do FactoryBot.define do
factory :cluster_applications_ingress, class: Clusters::Applications::Ingress do factory :cluster_applications_ingress, class: Clusters::Applications::Ingress do
cluster factory: %i(cluster provided_by_gcp) cluster factory: %i(cluster provided_by_gcp)
......
FactoryGirl.define do FactoryBot.define do
factory :cluster, class: Clusters::Cluster do factory :cluster, class: Clusters::Cluster do
user user
name 'test-cluster' name 'test-cluster'
......
FactoryGirl.define do FactoryBot.define do
factory :cluster_platform_kubernetes, class: Clusters::Platforms::Kubernetes do factory :cluster_platform_kubernetes, class: Clusters::Platforms::Kubernetes do
cluster cluster
namespace nil namespace nil
......
FactoryGirl.define do FactoryBot.define do
factory :cluster_provider_gcp, class: Clusters::Providers::Gcp do factory :cluster_provider_gcp, class: Clusters::Providers::Gcp do
cluster cluster
gcp_project_id 'test-gcp-project' gcp_project_id 'test-gcp-project'
......
FactoryGirl.define do FactoryBot.define do
factory :commit_status, class: CommitStatus do factory :commit_status, class: CommitStatus do
name 'default' name 'default'
stage 'test' stage 'test'
......
require_relative '../support/repo_helpers' require_relative '../support/repo_helpers'
FactoryGirl.define do FactoryBot.define do
factory :commit do factory :commit do
transient do transient do
author nil author nil
......
FactoryGirl.define do FactoryBot.define do
factory :container_repository do factory :container_repository do
name 'test_container_image' name 'test_container_image'
project project
......
FactoryGirl.define do FactoryBot.define do
factory :conversational_development_index_metric, class: ConversationalDevelopmentIndex::Metric do factory :conversational_development_index_metric, class: ConversationalDevelopmentIndex::Metric do
leader_issues 9.256 leader_issues 9.256
instance_issues 1.234 instance_issues 1.234
......
FactoryGirl.define do FactoryBot.define do
factory :deploy_keys_project do factory :deploy_keys_project do
deploy_key deploy_key
project project
......
FactoryGirl.define do FactoryBot.define do
factory :deployment, class: Deployment do factory :deployment, class: Deployment do
sha '97de212e80737a608d939f648d959671fb0a0142' sha '97de212e80737a608d939f648d959671fb0a0142'
ref 'master' ref 'master'
......
FactoryGirl.define do FactoryBot.define do
factory :email do factory :email do
user user
email { generate(:email_alias) } email { generate(:email_alias) }
......
FactoryGirl.define do FactoryBot.define do
factory :environment, class: Environment do factory :environment, class: Environment do
sequence(:name) { |n| "environment#{n}" } sequence(:name) { |n| "environment#{n}" }
......
FactoryGirl.define do FactoryBot.define do
factory :event do factory :event do
project project
author factory: :user author factory: :user
......
FactoryGirl.define do FactoryBot.define do
factory :file_uploader do factory :file_uploader do
skip_create skip_create
......
FactoryGirl.define do FactoryBot.define do
factory :fork_network_member do factory :fork_network_member do
association :project association :project
association :fork_network association :fork_network
......
FactoryGirl.define do FactoryBot.define do
factory :fork_network do factory :fork_network do
association :root_project, factory: :project association :root_project, factory: :project
end end
......
FactoryGirl.define do FactoryBot.define do
factory :forked_project_link do factory :forked_project_link do
association :forked_to_project, factory: [:project, :repository] association :forked_to_project, factory: [:project, :repository]
association :forked_from_project, factory: [:project, :repository] association :forked_from_project, factory: [:project, :repository]
......
FactoryGirl.define do FactoryBot.define do
sequence(:gitaly_commit_id) { Digest::SHA1.hexdigest(Time.now.to_f.to_s) } sequence(:gitaly_commit_id) { Digest::SHA1.hexdigest(Time.now.to_f.to_s) }
factory :gitaly_commit, class: Gitaly::GitCommit do factory :gitaly_commit, class: Gitaly::GitCommit do
......
FactoryGirl.define do FactoryBot.define do
factory :gitaly_commit_author, class: Gitaly::CommitAuthor do factory :gitaly_commit_author, class: Gitaly::CommitAuthor do
skip_create skip_create
......
require_relative '../support/gpg_helpers' require_relative '../support/gpg_helpers'
FactoryGirl.define do FactoryBot.define do
factory :gpg_key_subkey do factory :gpg_key_subkey do
gpg_key gpg_key
......
require_relative '../support/gpg_helpers' require_relative '../support/gpg_helpers'
FactoryGirl.define do FactoryBot.define do
factory :gpg_key do factory :gpg_key do
key GpgHelpers::User1.public_key key GpgHelpers::User1.public_key
user user
......
require_relative '../support/gpg_helpers' require_relative '../support/gpg_helpers'
FactoryGirl.define do FactoryBot.define do
factory :gpg_signature do factory :gpg_signature do
commit_sha { Digest::SHA1.hexdigest(SecureRandom.hex) } commit_sha { Digest::SHA1.hexdigest(SecureRandom.hex) }
project project
......
FactoryGirl.define do FactoryBot.define do
factory :group_custom_attribute do factory :group_custom_attribute do
group group
sequence(:key) { |n| "key#{n}" } sequence(:key) { |n| "key#{n}" }
......
FactoryGirl.define do FactoryBot.define do
factory :group_member do factory :group_member do
access_level { GroupMember::OWNER } access_level { GroupMember::OWNER }
group group
......
FactoryGirl.define do FactoryBot.define do
factory :group, class: Group, parent: :namespace do factory :group, class: Group, parent: :namespace do
sequence(:name) { |n| "group#{n}" } sequence(:name) { |n| "group#{n}" }
path { name.downcase.gsub(/\s/, '_') } path { name.downcase.gsub(/\s/, '_') }
......
FactoryGirl.define do FactoryBot.define do
factory :identity do factory :identity do
provider 'ldapmain' provider 'ldapmain'
extern_uid 'my-ldap-id' extern_uid 'my-ldap-id'
......
FactoryGirl.define do FactoryBot.define do
factory :instance_configuration do factory :instance_configuration do
skip_create skip_create
end end
......
FactoryGirl.define do FactoryBot.define do
factory :issue do factory :issue do
title { generate(:title) } title { generate(:title) }
author author
......
require_relative '../support/helpers/key_generator_helper' require_relative '../support/helpers/key_generator_helper'
FactoryGirl.define do FactoryBot.define do
factory :key do factory :key do
title title
key { Spec::Support::Helpers::KeyGeneratorHelper.new(1024).generate + ' dummy@gitlab.com' } key { Spec::Support::Helpers::KeyGeneratorHelper.new(1024).generate + ' dummy@gitlab.com' }
......
FactoryGirl.define do FactoryBot.define do
factory :label_link do factory :label_link do
label label
target factory: :issue target factory: :issue
......
FactoryGirl.define do FactoryBot.define do
factory :label_priority do factory :label_priority do
project project
label label
......
FactoryGirl.define do FactoryBot.define do
trait :base_label do trait :base_label do
title { generate(:label_title) } title { generate(:label_title) }
color "#990000" color "#990000"
......
include ActionDispatch::TestProcess include ActionDispatch::TestProcess
FactoryGirl.define do FactoryBot.define do
factory :lfs_object do factory :lfs_object do
sequence(:oid) { |n| "b68143e6463773b1b6c6fd009a76c32aeec041faff32ba2ed42fd7f708a%05x" % n } sequence(:oid) { |n| "b68143e6463773b1b6c6fd009a76c32aeec041faff32ba2ed42fd7f708a%05x" % n }
size 499013 size 499013
......
FactoryGirl.define do FactoryBot.define do
factory :lfs_objects_project do factory :lfs_objects_project do
lfs_object lfs_object
project project
......
FactoryGirl.define do FactoryBot.define do
factory :list do factory :list do
board board
label label
......
FactoryGirl.define do FactoryBot.define do
factory :merge_request do factory :merge_request do
title { generate(:title) } title { generate(:title) }
author author
......
FactoryGirl.define do FactoryBot.define do
factory :merge_requests_closing_issues do factory :merge_requests_closing_issues do
issue issue
merge_request merge_request
......
FactoryGirl.define do FactoryBot.define do
factory :milestone do factory :milestone do
title title
......
FactoryGirl.define do FactoryBot.define do
factory :namespace do factory :namespace do
sequence(:name) { |n| "namespace#{n}" } sequence(:name) { |n| "namespace#{n}" }
path { name.downcase.gsub(/\s/, '_') } path { name.downcase.gsub(/\s/, '_') }
......
...@@ -2,7 +2,7 @@ require_relative '../support/repo_helpers' ...@@ -2,7 +2,7 @@ require_relative '../support/repo_helpers'
include ActionDispatch::TestProcess include ActionDispatch::TestProcess
FactoryGirl.define do FactoryBot.define do
factory :note do factory :note do
project project
note { generate(:title) } note { generate(:title) }
......
FactoryGirl.define do FactoryBot.define do
factory :notification_setting do factory :notification_setting do
source factory: :project source factory: :project
user user
......
FactoryGirl.define do FactoryBot.define do
factory :oauth_access_grant do factory :oauth_access_grant do
resource_owner_id { create(:user).id } resource_owner_id { create(:user).id }
application application
......
FactoryGirl.define do FactoryBot.define do
factory :oauth_access_token do factory :oauth_access_token do
resource_owner resource_owner
application application
......
FactoryGirl.define do FactoryBot.define do
factory :oauth_application, class: 'Doorkeeper::Application', aliases: [:application] do factory :oauth_application, class: 'Doorkeeper::Application', aliases: [:application] do
sequence(:name) { |n| "OAuth App #{n}" } sequence(:name) { |n| "OAuth App #{n}" }
uid { Doorkeeper::OAuth::Helpers::UniqueToken.generate } uid { Doorkeeper::OAuth::Helpers::UniqueToken.generate }
......
FactoryGirl.define do FactoryBot.define do
factory :pages_domain, class: 'PagesDomain' do factory :pages_domain, class: 'PagesDomain' do
domain 'my.domain.com' domain 'my.domain.com'
......
FactoryGirl.define do FactoryBot.define do
factory :personal_access_token do factory :personal_access_token do
user user
token { SecureRandom.hex(50) } token { SecureRandom.hex(50) }
......
FactoryGirl.define do FactoryBot.define do
factory :project_auto_devops do factory :project_auto_devops do
project project
enabled true enabled true
......
FactoryGirl.define do FactoryBot.define do
factory :project_custom_attribute do factory :project_custom_attribute do
project project
sequence(:key) { |n| "key#{n}" } sequence(:key) { |n| "key#{n}" }
......
FactoryGirl.define do FactoryBot.define do
factory :project_group_link do factory :project_group_link do
project project
group group
......
FactoryGirl.define do FactoryBot.define do
factory :project_hook do factory :project_hook do
url { generate(:url) } url { generate(:url) }
enable_ssl_verification false enable_ssl_verification false
......
FactoryGirl.define do FactoryBot.define do
factory :project_member do factory :project_member do
user user
project project
......
FactoryGirl.define do FactoryBot.define do
factory :project_statistics do factory :project_statistics do
project project
......
FactoryGirl.define do FactoryBot.define do
factory :project_wiki do factory :project_wiki do
skip_create skip_create
......
require_relative '../support/test_env' require_relative '../support/test_env'
FactoryGirl.define do FactoryBot.define do
# Project without repository # Project without repository
# #
# Project does not have bare repository. # Project does not have bare repository.
......
FactoryGirl.define do FactoryBot.define do
factory :protected_branch do factory :protected_branch do
name name
project project
......
FactoryGirl.define do FactoryBot.define do
factory :protected_tag do factory :protected_tag do
name name
project project
......
FactoryGirl.define do FactoryBot.define do
factory :release do factory :release do
tag "v1.1.0" tag "v1.1.0"
description "Awesome release" description "Awesome release"
......
FactoryGirl.define do FactoryBot.define do
factory :sent_notification do factory :sent_notification do
project project
recipient factory: :user recipient factory: :user
......
FactoryGirl.define do FactoryBot.define do
sequence(:username) { |n| "user#{n}" } sequence(:username) { |n| "user#{n}" }
sequence(:name) { |n| "John Doe#{n}" } sequence(:name) { |n| "John Doe#{n}" }
sequence(:email) { |n| "user#{n}@example.org" } sequence(:email) { |n| "user#{n}@example.org" }
......
FactoryGirl.define do FactoryBot.define do
factory :service_hook do factory :service_hook do
url { generate(:url) } url { generate(:url) }
service service
......
FactoryGirl.define do FactoryBot.define do
factory :service do factory :service do
project project
type 'Service' type 'Service'
......
FactoryGirl.define do FactoryBot.define do
factory :snippet do factory :snippet do
author author
title { generate(:title) } title { generate(:title) }
......
FactoryGirl.define do FactoryBot.define do
factory :spam_log do factory :spam_log do
user user
sequence(:source_ip) { |n| "42.42.42.#{n % 255}" } sequence(:source_ip) { |n| "42.42.42.#{n % 255}" }
......
FactoryGirl.define do FactoryBot.define do
factory :subscription do factory :subscription do
user user
project project
......
FactoryGirl.define do FactoryBot.define do
factory :system_hook do factory :system_hook do
url { generate(:url) } url { generate(:url) }
end end
......
FactoryGirl.define do FactoryBot.define do
factory :system_note_metadata do factory :system_note_metadata do
note note
action 'merge' action 'merge'
......
# Read about factories at https://github.com/thoughtbot/factory_girl # Read about factories at https://github.com/thoughtbot/factory_bot
FactoryGirl.define do FactoryBot.define do
factory :timelog do factory :timelog do
time_spent 3600 time_spent 3600
user user
......
FactoryGirl.define do FactoryBot.define do
factory :todo do factory :todo do
project project
author author
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment