OSDN Git Service

Merge branch 'features/attachment_server' of /home/git/repositories/gitlab/gitlabhq
[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       closed true
58     end
59
60     factory :closed_issue, traits: [:closed]
61   end
62
63   factory :merge_request do
64     title
65     author
66     project
67     source_branch "master"
68     target_branch "stable"
69
70     trait :closed do
71       closed true
72     end
73
74     # pick 3 commits "at random" (from bcf03b5d~3 to bcf03b5d)
75     trait :with_diffs do
76       target_branch "master" # pretend bcf03b5d~3
77       source_branch "stable" # pretend bcf03b5d
78       st_commits do
79         [Commit.new(project.repo.commit('bcf03b5d')),
80          Commit.new(project.repo.commit('bcf03b5d~1')),
81          Commit.new(project.repo.commit('bcf03b5d~2'))]
82       end
83       st_diffs do
84         project.repo.diff("bcf03b5d~3", "bcf03b5d")
85       end
86     end
87
88     factory :closed_merge_request, traits: [:closed]
89     factory :merge_request_with_diffs, traits: [:with_diffs]
90   end
91
92   factory :note do
93     project
94     note "Note"
95     author
96
97     factory :note_on_commit, traits: [:on_commit]
98     factory :note_on_commit_diff, traits: [:on_commit, :on_diff]
99     factory :note_on_issue, traits: [:on_issue], aliases: [:votable_note]
100     factory :note_on_merge_request, traits: [:on_merge_request]
101     factory :note_on_merge_request_diff, traits: [:on_merge_request, :on_diff]
102
103     trait :on_commit do
104       commit_id     "bcf03b5de6c33f3869ef70d68cf06e679d1d7f9a"
105       noteable_type "Commit"
106     end
107
108     trait :on_diff do
109       line_code "0_184_184"
110     end
111
112     trait :on_merge_request do
113       noteable_id   1
114       noteable_type "MergeRequest"
115     end
116
117     trait :on_issue do
118       noteable_id   1
119       noteable_type "Issue"
120     end
121   end
122
123   factory :event do
124     factory :closed_issue_event do
125       project
126       action { Event::CLOSED }
127       target factory: :closed_issue
128       author factory: :user
129     end
130   end
131
132   factory :key do
133     title
134     key do
135       "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
136     end
137
138     factory :deploy_key do
139       project
140     end
141
142     factory :personal_key do
143       user
144     end
145
146     factory :key_with_a_space_in_the_middle do
147       key do
148         "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa ++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
149       end
150     end
151   end
152
153   factory :milestone do
154     title
155     project
156   end
157
158   factory :system_hook do
159     url
160   end
161
162   factory :project_hook do
163     url
164   end
165
166   factory :wiki do
167     title
168     content
169     user
170   end
171
172   factory :snippet do
173     project
174     author
175     title
176     content
177     file_name
178   end
179
180   factory :protected_branch do
181     name
182     project
183   end
184
185   factory :service do
186     type ""
187     title "GitLab CI"
188     token "x56olispAND34ng"
189     project
190   end
191
192   factory :service_hook do
193     url
194     service
195   end
196 end