OSDN Git Service

Merge pull request #2249 from jouve/fix_possible_spec_failure
[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 :group do
33     sequence(:name) { |n| "group#{n}" }
34     path { name.downcase.gsub(/\s/, '_') }
35     owner
36     type 'Group'
37   end
38
39   factory :namespace do
40     sequence(:name) { |n| "namespace#{n}" }
41     path { name.downcase.gsub(/\s/, '_') }
42     owner
43   end
44
45   factory :users_project do
46     user
47     project
48     project_access { UsersProject::MASTER }
49   end
50
51   factory :issue do
52     title
53     author
54     project
55
56     trait :closed do
57       state :closed
58     end
59
60     trait :reopened do
61       state :reopened
62     end
63
64     factory :closed_issue, traits: [:closed]
65     factory :reopened_issue, traits: [:reopened]
66   end
67
68   factory :merge_request do
69     title
70     author
71     project
72     source_branch "master"
73     target_branch "stable"
74
75     # pick 3 commits "at random" (from bcf03b5d~3 to bcf03b5d)
76     trait :with_diffs do
77       target_branch "master" # pretend bcf03b5d~3
78       source_branch "stable" # pretend bcf03b5d
79       st_commits do
80         [Commit.new(project.repo.commit('bcf03b5d')),
81          Commit.new(project.repo.commit('bcf03b5d~1')),
82          Commit.new(project.repo.commit('bcf03b5d~2'))]
83       end
84       st_diffs do
85         project.repo.diff("bcf03b5d~3", "bcf03b5d")
86       end
87     end
88
89     trait :closed do
90       state :closed
91     end
92
93     trait :reopened do
94       state :reopened
95     end
96
97     factory :closed_merge_request, traits: [:closed]
98     factory :reopened_merge_request, traits: [:reopened]
99     factory :merge_request_with_diffs, traits: [:with_diffs]
100   end
101
102   factory :note do
103     project
104     note "Note"
105     author
106
107     factory :note_on_commit, traits: [:on_commit]
108     factory :note_on_commit_diff, traits: [:on_commit, :on_diff]
109     factory :note_on_issue, traits: [:on_issue], aliases: [:votable_note]
110     factory :note_on_merge_request, traits: [:on_merge_request]
111     factory :note_on_merge_request_diff, traits: [:on_merge_request, :on_diff]
112
113     trait :on_commit do
114       commit_id     "bcf03b5de6c33f3869ef70d68cf06e679d1d7f9a"
115       noteable_type "Commit"
116     end
117
118     trait :on_diff do
119       line_code "0_184_184"
120     end
121
122     trait :on_merge_request do
123       noteable_id   1
124       noteable_type "MergeRequest"
125     end
126
127     trait :on_issue do
128       noteable_id   1
129       noteable_type "Issue"
130     end
131   end
132
133   factory :event do
134     factory :closed_issue_event do
135       project
136       action { Event::CLOSED }
137       target factory: :closed_issue
138       author factory: :user
139     end
140   end
141
142   factory :key do
143     title
144     key do
145       "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
146     end
147
148     factory :deploy_key do
149       project
150     end
151
152     factory :personal_key do
153       user
154     end
155
156     factory :key_with_a_space_in_the_middle do
157       key do
158         "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa ++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
159       end
160     end
161
162     factory :invalid_key do
163       key do
164         "ssh-rsa this_is_invalid_key=="
165       end
166     end
167   end
168
169   factory :milestone do
170     title
171     project
172
173     trait :closed do
174       state :closed
175     end
176
177     factory :closed_milestone, traits: [:closed]
178   end
179
180   factory :system_hook do
181     url
182   end
183
184   factory :project_hook do
185     url
186   end
187
188   factory :wiki do
189     title
190     content
191     user
192   end
193
194   factory :snippet do
195     project
196     author
197     title
198     content
199     file_name
200   end
201
202   factory :protected_branch do
203     name
204     project
205   end
206
207   factory :service do
208     type ""
209     title "GitLab CI"
210     token "x56olispAND34ng"
211     project
212   end
213
214   factory :service_hook do
215     url
216     service
217   end
218 end