Project

General

Profile

Patch #31994 » 0001-Issue-auto-complete-should-return-last-10-updated-is.patch

Marius BĂLTEANU, 2019-09-02 09:15

View differences:

app/controllers/auto_completes_controller.rb
25 25
    q = (params[:q] || params[:term]).to_s.strip
26 26
    status = params[:status].to_s
27 27
    issue_id = params[:issue_id].to_s
28

  
29
    scope = Issue.cross_project_scope(@project, params[:scope]).visible
30
    scope = scope.open(status == 'o') if status.present?
31
    scope = scope.where.not(:id => issue_id.to_i) if issue_id.present?
28 32
    if q.present?
29
      scope = Issue.cross_project_scope(@project, params[:scope]).visible
30
      if status.present?
31
        scope = scope.open(status == 'o')
32
      end
33
      if issue_id.present?
34
        scope = scope.where.not(:id => issue_id.to_i)
35
      end
36 33
      if q.match(/\A#?(\d+)\z/)
37 34
        issues << scope.find_by_id($1.to_i)
38 35
      end
39

  
40 36
      issues += scope.like(q).order(:id => :desc).limit(10).to_a
41 37
      issues.compact!
38
    else
39
      issues += scope.order(:id => :desc).limit(10).to_a
42 40
    end
43 41

  
44 42
    render :json => format_issues_json(issues)
test/functional/auto_completes_controller_test.rb
150 150
    assert_response :success
151 151
    assert_include 'application/json', response.headers['Content-Type']
152 152
  end
153

  
154
  def test_auto_complete_without_term_should_return_last_10_updated_issues
155
    # There are 9 issues generated by fixtures
156
    # and we need two more to test the 10 limit
157
    %w(1..2).each do
158
      Issue.generate!
159
    end
160

  
161
    get :issues
162

  
163
    assert_response :success
164
    json = ActiveSupport::JSON.decode(response.body)
165

  
166
    assert_equal 10, json.count
167
    assert_equal Issue.last.id, json.first['id'].to_i
168
  end
153 169
end
(2-2/2)