Commit d99594273d57b2d5ed7c748b3185712960b89478

Authored by Izaak Alpert
1 parent 128f2845

Style changes from review with @randx

-Some changes around calling origional methods for !for_fork? merge requests. Other changes to follow

Change-Id: I009c716ce2475b9efa3fd07aee9215fca7a1c150
app/contexts/filter_context.rb
... ... @@ -20,12 +20,12 @@ class FilterContext
20 20 end
21 21  
22 22 case params[:status]
23   - when 'closed'
24   - items.closed
25   - when 'all'
26   - items
27   - else
28   - items.opened
  23 + when 'closed'
  24 + items.closed
  25 + when 'all'
  26 + items
  27 + else
  28 + items.opened
29 29 end
30 30 end
31 31 end
... ...
app/controllers/projects/merge_requests_controller.rb
... ... @@ -124,7 +124,6 @@ class Projects::MergeRequestsController < Projects::ApplicationController
124 124 @target_branches
125 125 end
126 126  
127   -
128 127 def ci_status
129 128 status = project.gitlab_ci_service.commit_status(merge_request.last_commit.sha)
130 129 response = {status: status}
... ... @@ -134,12 +133,10 @@ class Projects::MergeRequestsController < Projects::ApplicationController
134 133  
135 134 protected
136 135  
137   -
138 136 def selected_target_project
139 137 ((@project.id.to_s == params[:target_project_id]) || @project.forked_project_link.nil?) ? @project : @project.forked_project_link.forked_from_project
140 138 end
141 139  
142   -
143 140 def merge_request
144 141 @merge_request ||= MergeRequest.find_by_id(params[:id])
145 142 end
... ...
app/helpers/merge_requests_helper.rb
1 1 module MergeRequestsHelper
2 2 def new_mr_path_from_push_event(event)
3 3 new_project_merge_request_path(
4   - event.project,
5   - new_mr_from_push_event(event, event.project)
  4 + event.project,
  5 + new_mr_from_push_event(event, event.project)
6 6 )
7 7 end
8 8  
9 9 def new_mr_path_for_fork_from_push_event(event)
10 10 new_project_merge_request_path(
11   - event.project,
12   - new_mr_from_push_event(event, event.project.forked_from_project)
  11 + event.project,
  12 + new_mr_from_push_event(event, event.project.forked_from_project)
13 13 )
14 14 end
15 15  
16   -
17 16 def new_mr_from_push_event(event, target_project)
18 17 return :merge_request => {
19   - source_project_id: event.project.id,
20   - target_project_id: target_project.id,
21   - source_branch: event.branch_name,
22   - target_branch: target_project.repository.root_ref,
23   - title: event.branch_name.titleize
  18 + source_project_id: event.project.id,
  19 + target_project_id: target_project.id,
  20 + source_branch: event.branch_name,
  21 + target_branch: target_project.repository.root_ref,
  22 + title: event.branch_name.titleize
24 23 }
25 24 end
26 25  
... ...
app/mailers/emails/merge_requests.rb
... ... @@ -2,7 +2,7 @@ module Emails
2 2 module MergeRequests
3 3 def new_merge_request_email(recipient_id, merge_request_id)
4 4 @merge_request = MergeRequest.find(merge_request_id)
5   - mail(to: @merge_request.assignee_email, subject: subject("new merge request !#{@merge_request.id}", @merge_request.title))
  5 + mail(to: recipient(recipient_id), subject: subject("new merge request !#{@merge_request.id}", @merge_request.title))
6 6 end
7 7  
8 8 def reassigned_merge_request_email(recipient_id, merge_request_id, previous_assignee_id)
... ...
app/models/merge_request.rb
... ... @@ -26,8 +26,8 @@ class MergeRequest < ActiveRecord::Base
26 26  
27 27 include Issuable
28 28  
29   - belongs_to :target_project, :foreign_key => :target_project_id, class_name: "Project"
30   - belongs_to :source_project, :foreign_key => :source_project_id, class_name: "Project"
  29 + belongs_to :target_project, foreign_key: :target_project_id, class_name: "Project"
  30 + belongs_to :source_project, foreign_key: :source_project_id, class_name: "Project"
31 31  
32 32 attr_accessible :title, :assignee_id, :source_project_id, :source_branch, :target_project_id, :target_branch, :milestone_id, :author_id_of_changes, :state_event
33 33  
... ... @@ -149,7 +149,11 @@ class MergeRequest < ActiveRecord::Base
149 149 end
150 150  
151 151 def unmerged_diffs
152   - diffs = Gitlab::Satellite::MergeAction.new(author, self).diffs_between_satellite
  152 + if for_fork?
  153 + diffs = Gitlab::Satellite::MergeAction.new(author, self).diffs_between_satellite
  154 + else
  155 + diffs = target_project.repository.diffs_between(source_branch, target_branch)
  156 + end
153 157 diffs ||= []
154 158 diffs
155 159 end
... ... @@ -172,7 +176,7 @@ class MergeRequest < ActiveRecord::Base
172 176  
173 177 def probably_merged?
174 178 unmerged_commits.empty? &&
175   - commits.any? && opened?
  179 + commits.any? && opened?
176 180 end
177 181  
178 182 def reloaded_commits
... ... @@ -185,11 +189,15 @@ class MergeRequest < ActiveRecord::Base
185 189 end
186 190  
187 191 def unmerged_commits
188   - commits = Gitlab::Satellite::MergeAction.new(self.author, self).commits_between
  192 + if for_fork?
  193 + commits = Gitlab::Satellite::MergeAction.new(self.author, self).commits_between
  194 + else
  195 + commits = target_project.repository.commits_between(self.target_branch, self.source_branch)
  196 + end
189 197 if commits.present?
190 198 commits = Commit.decorate(commits).
191   - sort_by(&:created_at).
192   - reverse
  199 + sort_by(&:created_at).
  200 + reverse
193 201 end
194 202 commits
195 203 end
... ...
app/models/note.rb
... ... @@ -32,8 +32,8 @@ class Note < ActiveRecord::Base
32 32 delegate :name, :email, to: :author, prefix: true
33 33  
34 34 validates :note, :project, presence: true
35   - validates :line_code, format: {with: /\A[a-z0-9]+_\d+_\d+\Z/}, allow_blank: true
36   - validates :attachment, file_size: {maximum: 10.megabytes.to_i}
  35 + validates :line_code, format: { with: /\A[a-z0-9]+_\d+_\d+\Z/ }, allow_blank: true
  36 + validates :attachment, file_size: { maximum: 10.megabytes.to_i }
37 37  
38 38 validates :noteable_id, presence: true, if: ->(n) { n.noteable_type.present? && n.noteable_type != 'Commit' }
39 39 validates :commit_id, presence: true, if: ->(n) { n.noteable_type == 'Commit' }
... ... @@ -42,13 +42,13 @@ class Note < ActiveRecord::Base
42 42  
43 43 # Scopes
44 44 scope :for_commit_id, ->(commit_id) { where(noteable_type: "Commit", commit_id: commit_id) }
45   - scope :inline, -> { where("line_code IS NOT NULL") }
46   - scope :not_inline, -> { where(line_code: [nil, '']) }
  45 + scope :inline, ->{ where("line_code IS NOT NULL") }
  46 + scope :not_inline, ->{ where(line_code: [nil, '']) }
47 47  
48   - scope :common, -> { where(noteable_type: ["", nil]) }
49   - scope :fresh, -> { order("created_at ASC, id ASC") }
50   - scope :inc_author_project, -> { includes(:project, :author) }
51   - scope :inc_author, -> { includes(:author) }
  48 + scope :common, ->{ where(noteable_type: ["", nil]) }
  49 + scope :fresh, ->{ order("created_at ASC, id ASC") }
  50 + scope :inc_author_project, ->{ includes(:project, :author) }
  51 + scope :inc_author, ->{ includes(:author) }
52 52  
53 53 def self.create_status_change_note(noteable, project, author, status)
54 54 create({
... ... @@ -61,8 +61,8 @@ class Note < ActiveRecord::Base
61 61  
62 62 def commit_author
63 63 @commit_author ||=
64   - project.users.find_by_email(noteable.author_email) ||
65   - project.users.find_by_name(noteable.author_name)
  64 + project.users.find_by_email(noteable.author_email) ||
  65 + project.users.find_by_name(noteable.author_name)
66 66 rescue
67 67 nil
68 68 end
... ... @@ -97,8 +97,8 @@ class Note < ActiveRecord::Base
97 97 # otherwise false is returned
98 98 def downvote?
99 99 votable? && (note.start_with?('-1') ||
100   - note.start_with?(':-1:')
101   - )
  100 + note.start_with?(':-1:')
  101 + )
102 102 end
103 103  
104 104 def for_commit?
... ... @@ -146,8 +146,8 @@ class Note < ActiveRecord::Base
146 146 # otherwise false is returned
147 147 def upvote?
148 148 votable? && (note.start_with?('+1') ||
149   - note.start_with?(':+1:')
150   - )
  149 + note.start_with?(':+1:')
  150 + )
151 151 end
152 152  
153 153 def votable?
... ...
app/observers/merge_request_observer.rb
... ... @@ -2,8 +2,7 @@ class MergeRequestObserver < ActivityObserver
2 2 observe :merge_request
3 3  
4 4 def after_create(merge_request)
5   - event_author_id = merge_request.author_id
6   - if event_author_id
  5 + if merge_request.author_id
7 6 create_event(merge_request, Event.determine_action(merge_request))
8 7 end
9 8  
... ... @@ -24,11 +23,11 @@ class MergeRequestObserver < ActivityObserver
24 23 return true if merge_request.merge_event
25 24  
26 25 Event.create(
27   - project: merge_request.target_project,
28   - target_id: merge_request.id,
29   - target_type: merge_request.class.name,
30   - action: Event::MERGED,
31   - author_id: merge_request.author_id_of_changes
  26 + project: merge_request.target_project,
  27 + target_id: merge_request.id,
  28 + target_type: merge_request.class.name,
  29 + action: Event::MERGED,
  30 + author_id: merge_request.author_id_of_changes
32 31 )
33 32 end
34 33  
... ... @@ -41,14 +40,13 @@ class MergeRequestObserver < ActivityObserver
41 40 notification.reassigned_merge_request(merge_request, current_user) if merge_request.is_being_reassigned?
42 41 end
43 42  
44   -
45 43 def create_event(record, status)
46 44 Event.create(
47   - project: record.target_project,
48   - target_id: record.id,
49   - target_type: record.class.name,
50   - action: status,
51   - author_id: record.author_id
  45 + project: record.target_project,
  46 + target_id: record.id,
  47 + target_type: record.class.name,
  48 + action: status,
  49 + author_id: record.author_id
52 50 )
53 51 end
54 52  
... ...
app/services/notification_service.rb
... ... @@ -80,9 +80,7 @@ class NotificationService
80 80 # * project team members with notification level higher then Participating
81 81 #
82 82 def merge_mr(merge_request)
83   - recipients = reject_muted_users([merge_request.author, merge_request.assignee], merge_request.source_project)
84   - recipients = recipients.concat(reject_muted_users([merge_request.author, merge_request.assignee], merge_request.target_project))
85   - recipients = recipients.concat(project_watchers(merge_request.source_project))
  83 + recipients = reject_muted_users([merge_request.author, merge_request.assignee], merge_request.target_project)
86 84 recipients = recipients.concat(project_watchers(merge_request.target_project)).uniq
87 85  
88 86 recipients.each do |recipient|
... ... @@ -104,7 +102,7 @@ class NotificationService
104 102 # ignore wall messages
105 103 return true unless note.noteable_type.present?
106 104  
107   - opts = {noteable_type: note.noteable_type, project_id: note.project_id}
  105 + opts = { noteable_type: note.noteable_type, project_id: note.project_id }
108 106  
109 107 if note.commit_id.present?
110 108 opts.merge!(commit_id: note.commit_id)
... ...
app/views/projects/commits/_commits.html.haml
... ... @@ -5,4 +5,4 @@
5 5 %span= day.stamp("28 Aug, 2010")
6 6 .pull-right
7 7 %small= pluralize(commits.count, 'commit')
8   - %ul.well-list= render commits, :project => @project
  8 + %ul.well-list= render commits, project: @project
... ...
app/views/projects/merge_requests/_form.html.haml
1   -= form_for [@source_project, @merge_request], html: { class: "#{controller.action_name}-merge-request form-horizontal" } do |form_helper|
  1 += form_for [@source_project, @merge_request], html: { class: "#{controller.action_name}-merge-request form-horizontal" } do |f|
2 2 -if @merge_request.errors.any?
3 3 .alert.alert-error
4 4 %ul
... ... @@ -51,9 +51,9 @@
51 51  
52 52 .form-actions
53 53 - if @merge_request.new_record?
54   - = form_helper.submit 'Submit merge request', class: "btn btn-create"
  54 + = f.submit 'Submit merge request', class: "btn btn-create"
55 55 -else
56   - = form_helper.submit 'Save changes', class: "btn btn-save"
  56 + = f.submit 'Save changes', class: "btn btn-save"
57 57 - if @merge_request.new_record?
58 58 = link_to project_merge_requests_path(@source_project), class: "btn btn-cancel" do
59 59 Cancel
... ...
app/views/projects/merge_requests/_merge_request.html.haml
... ... @@ -8,9 +8,14 @@
8 8 = "MERGED"
9 9 - else
10 10 %span.pull-right
11   - = "#{merge_request.source_project.path_with_namespace}/#{merge_request.source_branch}"
12   - %i.icon-angle-right
13   - = "#{merge_request.target_project.path_with_namespace}/#{merge_request.target_branch}"
  11 + - if merge_request.for_fork?
  12 + = "#{merge_request.source_project.path_with_namespace}/#{merge_request.source_branch}"
  13 + %i.icon-angle-right
  14 + = "#{merge_request.target_project.path_with_namespace}/#{merge_request.target_branch}"
  15 + - else
  16 + = "#{merge_request.source_branch}"
  17 + %i.icon-angle-right
  18 + = "#{merge_request.target_branch}"
14 19 .merge-request-info
15 20 - if merge_request.author
16 21 authored by #{link_to_member(merge_request.source_project, merge_request.author)}
... ...
app/views/projects/merge_requests/show/_mr_title.html.haml
1 1 %h3.page-title
2 2 = "Merge Request ##{@merge_request.id}:"
3 3  
4   - %span.label-project= @merge_request.source_project.path_with_namespace
5   - %span.label-branch= @merge_request.source_branch
6   - →
7   - %span.label-project= @merge_request.target_project.path_with_namespace
8   - %span.label-branch= @merge_request.target_branch
  4 + -if @merge_request.for_fork?
  5 + %span.label-project= @merge_request.source_project.path_with_namespace
  6 + %span.label-branch= @merge_request.source_branch
  7 + →
  8 + %span.label-project= @merge_request.target_project.path_with_namespace
  9 + %span.label-branch= @merge_request.target_branch
  10 + - else
  11 + %span.label-branch= @merge_request.source_branch
  12 + →
  13 + %span.label-branch= @merge_request.target_branch
9 14  
10 15 %span.pull-right
11 16 - if can?(current_user, :modify_merge_request, @merge_request)
... ...
app/views/search/_result.html.haml
... ... @@ -26,7 +26,10 @@
26 26 %span ##{merge_request.id}
27 27 %strong.term
28 28 = truncate merge_request.title, length: 50
29   - %span.light (#{merge_request.source_project.name_with_namespace}:#{merge_request.source_branch} → #{merge_request.target_project.name_with_namespace}:#{merge_request.target_branch})
  29 + - if merge_request.for_fork?
  30 + %span.light (#{merge_request.source_project.name_with_namespace}:#{merge_request.source_branch} → #{merge_request.target_project.name_with_namespace}:#{merge_request.target_branch})
  31 + - else
  32 + %span.light (#{merge_request.source_branch} → #{merge_request.target_branch})
30 33 - @issues.each do |issue|
31 34 %li
32 35 issue:
... ...
db/migrate/20130419190306_allow_merges_for_forks.rb
... ... @@ -2,7 +2,7 @@ class AllowMergesForForks < ActiveRecord::Migration
2 2  
3 3 def self.up
4 4 add_column :merge_requests, :target_project_id, :integer, :null => false
5   - MergeRequest.connection.execute("update merge_requests set target_project_id=project_id")
  5 + MergeRequest.update_all("target_project_id = project_id")
6 6 rename_column :merge_requests, :project_id, :source_project_id
7 7 end
8 8  
... ...
features/project/forked_merge_requests.feature
... ... @@ -20,7 +20,6 @@ Feature: Project Forked Merge Requests
20 20 And I submit the merge request
21 21 Then I should see merge request "Merge Request On Forked Project"
22 22  
23   -
24 23 @javascript
25 24 Scenario: I should see a push widget for forked merge requests
26 25 Given project "Forked Shop" has push event
... ... @@ -39,7 +38,6 @@ Feature: Project Forked Merge Requests
39 38 And I click link edit "Merge Request On Forked Project"
40 39 Then I see the edit page prefilled for "Merge Request On Forked Project"
41 40  
42   -
43 41 @javascript
44 42 Scenario: I cannot submit an invalid merge request
45 43 Given I visit project "Forked Shop" merge requests page
... ...
features/steps/project/project_forked_merge_requests.rb
... ... @@ -109,25 +109,25 @@ class ProjectForkedMergeRequests < Spinach::FeatureSteps
109 109 @forked_project = Project.find_by_name("Forked Shop")
110 110  
111 111 data = {
112   - before: "0000000000000000000000000000000000000000",
113   - after: "0220c11b9a3e6c69dc8fd35321254ca9a7b98f7e",
114   - ref: "refs/heads/new_design",
115   - user_id: @user.id,
116   - user_name: @user.name,
117   - repository: {
118   - name: @forked_project.name,
119   - url: "localhost/rubinius",
120   - description: "",
121   - homepage: "localhost/rubinius",
122   - private: true
123   - }
  112 + before: "0000000000000000000000000000000000000000",
  113 + after: "0220c11b9a3e6c69dc8fd35321254ca9a7b98f7e",
  114 + ref: "refs/heads/new_design",
  115 + user_id: @user.id,
  116 + user_name: @user.name,
  117 + repository: {
  118 + name: @forked_project.name,
  119 + url: "localhost/rubinius",
  120 + description: "",
  121 + homepage: "localhost/rubinius",
  122 + private: true
  123 + }
124 124 }
125 125  
126 126 @event = Event.create(
127   - project: @forked_project,
128   - action: Event::PUSHED,
129   - data: data,
130   - author_id: @user.id
  127 + project: @forked_project,
  128 + action: Event::PUSHED,
  129 + data: data,
  130 + author_id: @user.id
131 131 )
132 132 end
133 133  
... ...
lib/gitlab/satellite/action.rb
1 1 module Gitlab
2 2 module Satellite
3 3 class Action
4   - DEFAULT_OPTIONS = {git_timeout: 30.seconds}
  4 + DEFAULT_OPTIONS = { git_timeout: 30.seconds }
5 5  
6 6 attr_accessor :options, :project, :user
7 7  
... ... @@ -39,8 +39,8 @@ module Gitlab
39 39 def prepare_satellite!(repo)
40 40 project.satellite.clear_and_update!
41 41  
42   - repo.config['user.name']=user.name
43   - repo.config['user.email']=user.email
  42 + repo.config['user.name'] = user.name
  43 + repo.config['user.email'] = user.email
44 44 end
45 45  
46 46 def default_options(options = {})
... ...
lib/gitlab/satellite/satellite.rb
1 1 module Gitlab
2   - class SatelliteNotExistError < StandardError;
3   - end
  2 + class SatelliteNotExistError < StandardError; end
4 3  
5 4 module Satellite
6 5 class Satellite
... ... @@ -22,9 +21,9 @@ module Gitlab
22 21 raise SatelliteNotExistError.new("Satellite doesn't exist")
23 22 end
24 23  
25   -
26 24 def clear_and_update!
27 25 raise_no_satellite unless exists?
  26 +
28 27 File.exists? path
29 28 @repo = nil
30 29 clear_working_dir!
... ... @@ -68,7 +67,6 @@ module Gitlab
68 67 end
69 68 end
70 69  
71   -
72 70 def lock_file
73 71 create_locks_dir unless File.exists?(lock_files_dir)
74 72 File.join(lock_files_dir, "satellite_#{project.id}.lock")
... ...
spec/factories.rb
... ... @@ -117,9 +117,9 @@ FactoryGirl.define do
117 117 source_branch "stable" # pretend bcf03b5d
118 118 st_commits do
119 119 [
120   - source_project.repository.commit('bcf03b5d').to_hash,
121   - source_project.repository.commit('bcf03b5d~1').to_hash,
122   - source_project.repository.commit('bcf03b5d~2').to_hash
  120 + source_project.repository.commit('bcf03b5d').to_hash,
  121 + source_project.repository.commit('bcf03b5d~1').to_hash,
  122 + source_project.repository.commit('bcf03b5d~2').to_hash
123 123 ]
124 124 end
125 125 st_diffs do
... ...
spec/factories_spec.rb
1 1 require 'spec_helper'
2 2  
3 3 INVALID_FACTORIES = [
4   - :key_with_a_space_in_the_middle,
5   - :invalid_key,
  4 + :key_with_a_space_in_the_middle,
  5 + :invalid_key,
6 6 ]
7 7  
8 8 FactoryGirl.factories.map(&:name).each do |factory_name|
9 9 next if INVALID_FACTORIES.include?(factory_name)
10   -
11 10 describe "#{factory_name} factory" do
12 11 it 'should be valid' do
13 12 build(factory_name).should be_valid
... ...
spec/features/security/project_access_spec.rb
... ... @@ -21,7 +21,6 @@ describe &quot;Application access&quot; do
21 21 let(:reporter) { create(:user) }
22 22  
23 23 before do
24   -
25 24 # full access
26 25 project.team << [master, :master]
27 26  
... ...
spec/lib/gitlab/satellite/action_spec.rb
1 1 require 'spec_helper'
2 2  
3 3 describe 'Gitlab::Satellite::Action' do
4   -
5   -
6 4 let(:project) { create(:project_with_code) }
7 5 let(:user) { create(:user) }
8 6  
9   -
10 7 describe '#prepare_satellite!' do
11 8  
12 9 it 'create a repository with a parking branch and one remote: origin' do
... ... @@ -50,11 +47,8 @@ describe &#39;Gitlab::Satellite::Action&#39; do
50 47 repo.config['user.name'].should ==user.name
51 48 repo.config['user.email'].should ==user.email
52 49 end
53   -
54   -
55 50 end
56 51  
57   -
58 52 describe '#in_locked_and_timed_satellite' do
59 53  
60 54 it 'should make use of a lockfile' do
... ...
spec/lib/gitlab/satellite/merge_action_spec.rb
... ... @@ -11,7 +11,6 @@ describe &#39;Gitlab::Satellite::MergeAction&#39; do
11 11 #these commits are quite close together, itended to make string diffs/format patches small
12 12 @close_commit1 = ['2_3_notes_fix', '8470d70da67355c9c009e4401746b1d5410af2e3']
13 13 @close_commit2 = ['scss_refactoring', 'f0f14c8eaba69ebddd766498a9d0b0e79becd633']
14   -
15 14 end
16 15  
17 16 let(:project) { create(:project_with_code) }
... ... @@ -53,7 +52,6 @@ describe &#39;Gitlab::Satellite::MergeAction&#39; do
53 52 end
54 53 end
55 54  
56   -
57 55 describe '#format_patch' do
58 56 context 'on fork' do
59 57 it 'should build a format patch' do
... ... @@ -76,7 +74,6 @@ describe &#39;Gitlab::Satellite::MergeAction&#39; do
76 74 end
77 75 end
78 76  
79   -
80 77 describe '#diffs_between_satellite tested against diff_in_satellite' do
81 78  
82 79 def is_a_matching_diff(diff, diffs)
... ... @@ -109,7 +106,6 @@ describe &#39;Gitlab::Satellite::MergeAction&#39; do
109 106 merge_request.source_branch = @master[0]
110 107 diffs = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diffs_between_satellite
111 108  
112   -
113 109 merge_request.target_branch = @close_commit1[0]
114 110 merge_request.source_branch = @master[0]
115 111 diff = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diff_in_satellite
... ... @@ -119,7 +115,6 @@ describe &#39;Gitlab::Satellite::MergeAction&#39; do
119 115 end
120 116 end
121 117  
122   -
123 118 describe '#can_be_merged?' do
124 119 context 'on fork' do
125 120 it 'return true or false depending on if something is mergable' do
... ... @@ -145,5 +140,4 @@ describe &#39;Gitlab::Satellite::MergeAction&#39; do
145 140 end
146 141 end
147 142 end
148   -
149 143 end
150 144 \ No newline at end of file
... ...
spec/observers/merge_request_observer_spec.rb
... ... @@ -90,7 +90,6 @@ describe MergeRequestObserver do
90 90 end
91 91 end
92 92  
93   -
94 93 describe "Merge Request created" do
95 94 def self.it_should_be_valid_event
96 95 it { @event.should_not be_nil }
... ...
spec/requests/api/projects_spec.rb
... ... @@ -15,8 +15,7 @@ describe API::API do
15 15 let!(:users_project) { create(:users_project, user: user, project: project, project_access: UsersProject::MASTER) }
16 16 let!(:users_project2) { create(:users_project, user: user3, project: project, project_access: UsersProject::DEVELOPER) }
17 17  
18   - before {
19   - project.team << [user, :reporter] }
  18 + before { project.team << [user, :reporter] }
20 19  
21 20 describe "GET /projects" do
22 21 context "when unauthenticated" do
... ... @@ -48,16 +47,16 @@ describe API::API do
48 47 it "should not create new project" do
49 48 expect {
50 49 post api("/projects", user2), name: 'foo'
51   - }.to change { Project.count }.by(0)
  50 + }.to change {Project.count}.by(0)
52 51 end
53 52 end
54 53  
55 54 it "should create new project without path" do
56   - expect { post api("/projects", user), name: 'foo' }.to change { Project.count }.by(1)
  55 + expect { post api("/projects", user), name: 'foo' }.to change {Project.count}.by(1)
57 56 end
58 57  
59 58 it "should not create new project without name" do
60   - expect { post api("/projects", user) }.to_not change { Project.count }
  59 + expect { post api("/projects", user) }.to_not change {Project.count}
61 60 end
62 61  
63 62 it "should return a 400 error if name not given" do
... ... @@ -91,17 +90,17 @@ describe API::API do
91 90  
92 91 it "should assign attributes to project" do
93 92 project = attributes_for(:project, {
94   - description: Faker::Lorem.sentence,
95   - default_branch: 'stable',
96   - issues_enabled: false,
97   - wall_enabled: false,
98   - merge_requests_enabled: false,
99   - wiki_enabled: false
  93 + description: Faker::Lorem.sentence,
  94 + default_branch: 'stable',
  95 + issues_enabled: false,
  96 + wall_enabled: false,
  97 + merge_requests_enabled: false,
  98 + wiki_enabled: false
100 99 })
101 100  
102 101 post api("/projects", user), project
103 102  
104   - project.each_pair do |k, v|
  103 + project.each_pair do |k,v|
105 104 next if k == :path
106 105 json_response[k.to_s].should == v
107 106 end
... ... @@ -127,11 +126,11 @@ describe API::API do
127 126 before { admin }
128 127  
129 128 it "should create new project without path" do
130   - expect { post api("/projects/user/#{user.id}", admin), name: 'foo' }.to change { Project.count }.by(1)
  129 + expect { post api("/projects/user/#{user.id}", admin), name: 'foo' }.to change {Project.count}.by(1)
131 130 end
132 131  
133 132 it "should not create new project without name" do
134   - expect { post api("/projects/user/#{user.id}", admin) }.to_not change { Project.count }
  133 + expect { post api("/projects/user/#{user.id}", admin) }.to_not change {Project.count}
135 134 end
136 135  
137 136 it "should respond with 201 on success" do
... ... @@ -146,17 +145,17 @@ describe API::API do
146 145  
147 146 it "should assign attributes to project" do
148 147 project = attributes_for(:project, {
149   - description: Faker::Lorem.sentence,
150   - default_branch: 'stable',
151   - issues_enabled: false,
152   - wall_enabled: false,
153   - merge_requests_enabled: false,
154   - wiki_enabled: false
  148 + description: Faker::Lorem.sentence,
  149 + default_branch: 'stable',
  150 + issues_enabled: false,
  151 + wall_enabled: false,
  152 + merge_requests_enabled: false,
  153 + wiki_enabled: false
155 154 })
156 155  
157 156 post api("/projects/user/#{user.id}", admin), project
158 157  
159   - project.each_pair do |k, v|
  158 + project.each_pair do |k,v|
160 159 next if k == :path
161 160 json_response[k.to_s].should == v
162 161 end
... ... @@ -269,7 +268,7 @@ describe API::API do
269 268 it "should add user to project team" do
270 269 expect {
271 270 post api("/projects/#{project.id}/members", user), user_id: user2.id,
272   - access_level: UsersProject::DEVELOPER
  271 + access_level: UsersProject::DEVELOPER
273 272 }.to change { UsersProject.count }.by(1)
274 273  
275 274 response.status.should == 201
... ... @@ -279,10 +278,10 @@ describe API::API do
279 278  
280 279 it "should return a 201 status if user is already project member" do
281 280 post api("/projects/#{project.id}/members", user), user_id: user2.id,
282   - access_level: UsersProject::DEVELOPER
  281 + access_level: UsersProject::DEVELOPER
283 282 expect {
284 283 post api("/projects/#{project.id}/members", user), user_id: user2.id,
285   - access_level: UsersProject::DEVELOPER
  284 + access_level: UsersProject::DEVELOPER
286 285 }.not_to change { UsersProject.count }.by(1)
287 286  
288 287 response.status.should == 201
... ... @@ -413,8 +412,8 @@ describe API::API do
413 412 it "should add hook to project" do
414 413 expect {
415 414 post api("/projects/#{project.id}/hooks", user),
416   - url: "http://example.com"
417   - }.to change { project.hooks.count }.by(1)
  415 + url: "http://example.com"
  416 + }.to change {project.hooks.count}.by(1)
418 417 response.status.should == 201
419 418 end
420 419  
... ... @@ -432,7 +431,7 @@ describe API::API do
432 431 describe "PUT /projects/:id/hooks/:hook_id" do
433 432 it "should update an existing project hook" do
434 433 put api("/projects/#{project.id}/hooks/#{hook.id}", user),
435   - url: 'http://example.org'
  434 + url: 'http://example.org'
436 435 response.status.should == 200
437 436 json_response['url'].should == 'http://example.org'
438 437 end
... ... @@ -457,7 +456,7 @@ describe API::API do
457 456 it "should delete hook from project" do
458 457 expect {
459 458 delete api("/projects/#{project.id}/hooks/#{hook.id}", user)
460   - }.to change { project.hooks.count }.by(-1)
  459 + }.to change {project.hooks.count}.by(-1)
461 460 response.status.should == 200
462 461 end
463 462  
... ... @@ -477,7 +476,6 @@ describe API::API do
477 476 end
478 477 end
479 478  
480   -
481 479 describe "GET /projects/:id/snippets" do
482 480 it "should return an array of project snippets" do
483 481 get api("/projects/#{project.id}/snippets", user)
... ... @@ -503,26 +501,26 @@ describe API::API do
503 501 describe "POST /projects/:id/snippets" do
504 502 it "should create a new project snippet" do
505 503 post api("/projects/#{project.id}/snippets", user),
506   - title: 'api test', file_name: 'sample.rb', code: 'test'
  504 + title: 'api test', file_name: 'sample.rb', code: 'test'
507 505 response.status.should == 201
508 506 json_response['title'].should == 'api test'
509 507 end
510 508  
511 509 it "should return a 400 error if title is not given" do
512 510 post api("/projects/#{project.id}/snippets", user),
513   - file_name: 'sample.rb', code: 'test'
  511 + file_name: 'sample.rb', code: 'test'
514 512 response.status.should == 400
515 513 end
516 514  
517 515 it "should return a 400 error if file_name not given" do
518 516 post api("/projects/#{project.id}/snippets", user),
519   - title: 'api test', code: 'test'
  517 + title: 'api test', code: 'test'
520 518 response.status.should == 400
521 519 end
522 520  
523 521 it "should return a 400 error if code not given" do
524 522 post api("/projects/#{project.id}/snippets", user),
525   - title: 'api test', file_name: 'sample.rb'
  523 + title: 'api test', file_name: 'sample.rb'
526 524 response.status.should == 400
527 525 end
528 526 end
... ... @@ -530,7 +528,7 @@ describe API::API do
530 528 describe "PUT /projects/:id/snippets/:shippet_id" do
531 529 it "should update an existing project snippet" do
532 530 put api("/projects/#{project.id}/snippets/#{snippet.id}", user),
533   - code: 'updated code'
  531 + code: 'updated code'
534 532 response.status.should == 200
535 533 json_response['title'].should == 'example'
536 534 snippet.reload.content.should == 'updated code'
... ... @@ -538,7 +536,7 @@ describe API::API do
538 536  
539 537 it "should update an existing project snippet with new title" do
540 538 put api("/projects/#{project.id}/snippets/#{snippet.id}", user),
541   - title: 'other api test'
  539 + title: 'other api test'
542 540 response.status.should == 200
543 541 json_response['title'].should == 'other api test'
544 542 end
... ... @@ -600,7 +598,7 @@ describe API::API do
600 598  
601 599 describe "POST /projects/:id/keys" do
602 600 it "should not create an invalid ssh key" do
603   - post api("/projects/#{project.id}/keys", user), {title: "invalid key"}
  601 + post api("/projects/#{project.id}/keys", user), { title: "invalid key" }
604 602 response.status.should == 404
605 603 end
606 604  
... ... @@ -608,7 +606,7 @@ describe API::API do
608 606 key_attrs = attributes_for :key
609 607 expect {
610 608 post api("/projects/#{project.id}/keys", user), key_attrs
611   - }.to change { project.deploy_keys.count }.by(1)
  609 + }.to change{ project.deploy_keys.count }.by(1)
612 610 end
613 611 end
614 612  
... ... @@ -618,7 +616,7 @@ describe API::API do
618 616 it "should delete existing key" do
619 617 expect {
620 618 delete api("/projects/#{project.id}/keys/#{deploy_key.id}", user)
621   - }.to change { project.deploy_keys.count }.by(-1)
  619 + }.to change{ project.deploy_keys.count }.by(-1)
622 620 end
623 621  
624 622 it "should return 404 Not Found with invalid ID" do
... ...
spec/support/test_env.rb
... ... @@ -72,17 +72,17 @@ module TestEnv
72 72 )
73 73  
74 74 Gitlab::Satellite::Satellite.any_instance.stub(
75   - exists?: true,
76   - destroy: true,
77   - create: true,
78   - lock_files_dir: repos_path
  75 + exists?: true,
  76 + destroy: true,
  77 + create: true,
  78 + lock_files_dir: repos_path
79 79 )
80 80  
81 81 MergeRequest.any_instance.stub(
82   - check_if_can_be_merged: true
  82 + check_if_can_be_merged: true
83 83 )
84 84 Repository.any_instance.stub(
85   - size: 12.45
  85 + size: 12.45
86 86 )
87 87 end
88 88  
... ... @@ -170,6 +170,4 @@ module TestEnv
170 170 command = "git init --quiet --bare #{path};"
171 171 system(command)
172 172 end
173   -
174   -
175 173 end
... ...