OSDN Git Service

Merge branch 'feature/merge_request_serialize'
[wvm/gitlab.git] / spec / factories.rb
1 FactoryGirl.define do
2   sequence :sentence, aliases: [:title, :content] do
3     Faker::Lorem.sentence
4   end
5
6   sequence :name, aliases: [:file_name] do
7     Faker::Name.name
8   end
9
10   sequence(:url) { Faker::Internet.uri('http') }
11
12   factory :user, aliases: [:author, :assignee, :owner, :creator] do
13     email { Faker::Internet.email }
14     name
15     sequence(:username) { |n| "#{Faker::Internet.user_name}#{n}" }
16     password "123456"
17     password_confirmation { password }
18
19     trait :admin do
20       admin true
21     end
22
23     factory :admin, traits: [:admin]
24   end
25
26   factory :project do
27     sequence(:name) { |n| "project#{n}" }
28     path { name.downcase.gsub(/\s/, '_') }
29     creator
30   end
31
32   factory :redmine_project, parent: :project do
33     issues_tracker { "redmine" }
34     issues_tracker_id { "project_name_in_redmine" }
35   end
36
37   factory :project_with_code, parent: :project do
38     path { 'gitlabhq' }
39   end
40
41   factory :group do
42     sequence(:name) { |n| "group#{n}" }
43     path { name.downcase.gsub(/\s/, '_') }
44     owner
45     type 'Group'
46   end
47
48   factory :namespace do
49     sequence(:name) { |n| "namespace#{n}" }
50     path { name.downcase.gsub(/\s/, '_') }
51     owner
52   end
53
54   factory :users_project do
55     user
56     project
57     project_access { UsersProject::MASTER }
58   end
59
60   factory :issue do
61     title
62     author
63     project
64
65     trait :closed do
66       state :closed
67     end
68
69     trait :reopened do
70       state :reopened
71     end
72
73     factory :closed_issue, traits: [:closed]
74     factory :reopened_issue, traits: [:reopened]
75   end
76
77   factory :merge_request do
78     title
79     author
80     project factory: :project_with_code
81     source_branch "master"
82     target_branch "stable"
83
84     # pick 3 commits "at random" (from bcf03b5d~3 to bcf03b5d)
85     trait :with_diffs do
86       target_branch "master" # pretend bcf03b5d~3
87       source_branch "stable" # pretend bcf03b5d
88       st_commits do
89         [
90           project.repository.commit('bcf03b5d').to_hash,
91           project.repository.commit('bcf03b5d~1').to_hash,
92           project.repository.commit('bcf03b5d~2').to_hash
93         ]
94       end
95       st_diffs do
96         project.repo.diff("bcf03b5d~3", "bcf03b5d")
97       end
98     end
99
100     trait :closed do
101       state :closed
102     end
103
104     trait :reopened do
105       state :reopened
106     end
107
108     factory :closed_merge_request, traits: [:closed]
109     factory :reopened_merge_request, traits: [:reopened]
110     factory :merge_request_with_diffs, traits: [:with_diffs]
111   end
112
113   factory :note do
114     project
115     note "Note"
116     author
117
118     factory :note_on_commit, traits: [:on_commit]
119     factory :note_on_commit_diff, traits: [:on_commit, :on_diff]
120     factory :note_on_issue, traits: [:on_issue], aliases: [:votable_note]
121     factory :note_on_merge_request, traits: [:on_merge_request]
122     factory :note_on_merge_request_diff, traits: [:on_merge_request, :on_diff]
123
124     trait :on_commit do
125       project factory: :project_with_code
126       commit_id     "bcf03b5de6c33f3869ef70d68cf06e679d1d7f9a"
127       noteable_type "Commit"
128     end
129
130     trait :on_diff do
131       line_code "0_184_184"
132     end
133
134     trait :on_merge_request do
135       project factory: :project_with_code
136       noteable_id   1
137       noteable_type "MergeRequest"
138     end
139
140     trait :on_issue do
141       noteable_id   1
142       noteable_type "Issue"
143     end
144   end
145
146   factory :event do
147     factory :closed_issue_event do
148       project
149       action { Event::CLOSED }
150       target factory: :closed_issue
151       author factory: :user
152     end
153   end
154
155   factory :key do
156     title
157     key do
158       "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
159     end
160
161     factory :deploy_key do
162       project
163     end
164
165     factory :personal_key do
166       user
167     end
168
169     factory :key_with_a_space_in_the_middle do
170       key do
171         "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa ++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
172       end
173     end
174
175     factory :invalid_key do
176       key do
177         "ssh-rsa this_is_invalid_key=="
178       end
179     end
180   end
181
182   factory :milestone do
183     title
184     project
185
186     trait :closed do
187       state :closed
188     end
189
190     factory :closed_milestone, traits: [:closed]
191   end
192
193   factory :system_hook do
194     url
195   end
196
197   factory :project_hook do
198     url
199   end
200
201   factory :wiki do
202     title
203     content
204     user
205   end
206
207   factory :snippet do
208     project
209     author
210     title
211     content
212     file_name
213   end
214
215   factory :protected_branch do
216     name
217     project
218   end
219
220   factory :service do
221     type ""
222     title "GitLab CI"
223     token "x56olispAND34ng"
224     project
225   end
226
227   factory :service_hook do
228     url
229     service
230   end
231 end