filter_issues_spec.rb 18.0 KB
Newer Older
C
Clement Ho 已提交
1
require 'spec_helper'
2

3
describe 'Filter issues', :js do
C
Clement Ho 已提交
4
  include FilteredSearchHelpers
5

6
  let(:project) { create(:project) }
7 8 9 10 11 12

  # NOTE: The short name here is actually important
  #
  # When the name is longer, the filtered search input can end up scrolling
  # horizontally, and PhantomJS can't handle it.
  let(:user) { create(:user, name: 'Ann') }
L
Lin Jen-Shin 已提交
13
  let(:user2) { create(:user, name: 'jane') }
14

C
Clement Ho 已提交
15
  let!(:bug_label) { create(:label, project: project, title: 'bug') }
16
  let!(:caps_sensitive_label) { create(:label, project: project, title: 'CaPs') }
C
Clement Ho 已提交
17
  let!(:multiple_words_label) { create(:label, project: project, title: "Two words") }
18
  let!(:milestone) { create(:milestone, title: "8", project: project, start_date: 2.days.ago) }
C
Clement Ho 已提交
19 20 21

  def expect_no_issues_list
    page.within '.issues-list' do
22
      expect(page).to have_no_selector('.issue')
C
Clement Ho 已提交
23 24 25
    end
  end

26
  before do
27
    project.add_maintainer(user)
28

29 30
    create(:issue, project: project, author: user2, title: "Bug report 1")
    create(:issue, project: project, author: user2, title: "Bug report 2")
31

32 33
    create(:issue, project: project, author: user,  title: "issue by assignee", milestone: milestone, assignees: [user])
    create(:issue, project: project, author: user,  title: "issue by assignee with searchTerm", milestone: milestone, assignees: [user])
34

35
    create(:labeled_issue,
C
Clement Ho 已提交
36 37 38 39
      title: "Bug 2",
      project: project,
      milestone: milestone,
      author: user,
40 41
      assignees: [user],
      labels: [bug_label])
C
Clement Ho 已提交
42

43
    create(:labeled_issue,
C
Clement Ho 已提交
44 45 46 47
      title: "issue by assignee with searchTerm and label",
      project: project,
      milestone: milestone,
      author: user,
48 49
      assignees: [user],
      labels: [caps_sensitive_label])
C
Clement Ho 已提交
50

51
    create(:labeled_issue,
52
      title: "Bug report foo was possible",
C
Clement Ho 已提交
53 54 55
      project: project,
      milestone: milestone,
      author: user,
56 57
      assignees: [user],
      labels: [bug_label, caps_sensitive_label])
C
Clement Ho 已提交
58

59
    create(:labeled_issue, title: "Issue with multiple words label", project: project, labels: [multiple_words_label])
C
Clement Ho 已提交
60

61
    sign_in(user)
62
    visit project_issues_path(project)
C
Clement Ho 已提交
63
  end
64

65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
  it 'filters by all available tokens' do
    search_term = 'issue'

    input_filtered_search("assignee:@#{user.username} author:@#{user.username} label:~#{caps_sensitive_label.title} milestone:%#{milestone.title} #{search_term}")

    wait_for_requests

    expect_tokens([
      assignee_token(user.name),
      author_token(user.name),
      label_token(caps_sensitive_label.title),
      milestone_token(milestone.title)
    ])
    expect_issues_list_count(1)
    expect_filtered_search_input(search_term)
  end

C
Clement Ho 已提交
82
  describe 'filter issues by author' do
C
Clement Ho 已提交
83
    context 'only author' do
C
Clement Ho 已提交
84
      it 'filters issues by searched author' do
85
        input_filtered_search("author:@#{user.username}")
C
Clement Ho 已提交
86

87 88 89
        wait_for_requests

        expect_tokens([author_token(user.name)])
C
Clement Ho 已提交
90
        expect_issues_list_count(5)
C
Clement Ho 已提交
91
        expect_filtered_search_input_empty
C
Clement Ho 已提交
92
      end
93 94
    end
  end
A
Arinde Eniola 已提交
95

C
Clement Ho 已提交
96
  describe 'filter issues by assignee' do
C
Clement Ho 已提交
97
    context 'only assignee' do
C
Clement Ho 已提交
98
      it 'filters issues by searched assignee' do
C
Clement Ho 已提交
99
        input_filtered_search("assignee:@#{user.username}")
C
Clement Ho 已提交
100

101 102 103
        wait_for_requests

        expect_tokens([assignee_token(user.name)])
C
Clement Ho 已提交
104
        expect_issues_list_count(5)
C
Clement Ho 已提交
105
        expect_filtered_search_input_empty
C
Clement Ho 已提交
106
      end
A
Arinde Eniola 已提交
107

C
Clement Ho 已提交
108
      it 'filters issues by no assignee' do
C
Clement Ho 已提交
109
        input_filtered_search('assignee:none')
C
Clement Ho 已提交
110

111
        expect_tokens([assignee_token('None')])
112
        expect_issues_list_count(3)
C
Clement Ho 已提交
113
        expect_filtered_search_input_empty
C
Clement Ho 已提交
114
      end
L
Lin Jen-Shin 已提交
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132

      it 'filters issues by invalid assignee' do
        skip('to be tested, issue #26546')
      end

      it 'filters issues by multiple assignees' do
        create(:issue, project: project, author: user, assignees: [user2, user])

        input_filtered_search("assignee:@#{user.username} assignee:@#{user2.username}")

        expect_tokens([
          assignee_token(user.name),
          assignee_token(user2.name)
        ])

        expect_issues_list_count(1)
        expect_filtered_search_input_empty
      end
A
Arinde Eniola 已提交
133
    end
C
Clement Ho 已提交
134
  end
P
Phil Hughes 已提交
135

C
Clement Ho 已提交
136
  describe 'filter issues by label' do
C
Clement Ho 已提交
137
    context 'only label' do
C
Clement Ho 已提交
138
      it 'filters issues by searched label' do
C
Clement Ho 已提交
139
        input_filtered_search("label:~#{bug_label.title}")
C
Clement Ho 已提交
140

141
        expect_tokens([label_token(bug_label.title)])
C
Clement Ho 已提交
142
        expect_issues_list_count(2)
C
Clement Ho 已提交
143
        expect_filtered_search_input_empty
144
      end
P
Phil Hughes 已提交
145

C
Clement Ho 已提交
146
      it 'filters issues by no label' do
C
Clement Ho 已提交
147
        input_filtered_search('label:none')
C
Clement Ho 已提交
148

149
        expect_tokens([label_token('None', false)])
150
        expect_issues_list_count(4)
C
Clement Ho 已提交
151
        expect_filtered_search_input_empty
152
      end
153

C
Clement Ho 已提交
154
      it 'filters issues by multiple labels' do
C
Clement Ho 已提交
155
        input_filtered_search("label:~#{bug_label.title} label:~#{caps_sensitive_label.title}")
C
Clement Ho 已提交
156

C
Clement Ho 已提交
157
        expect_tokens([
158 159
          label_token(bug_label.title),
          label_token(caps_sensitive_label.title)
C
Clement Ho 已提交
160
        ])
C
Clement Ho 已提交
161
        expect_issues_list_count(1)
C
Clement Ho 已提交
162
        expect_filtered_search_input_empty
C
Clement Ho 已提交
163
      end
C
Clement Ho 已提交
164 165 166 167 168

      it 'filters issues by label containing special characters' do
        special_label = create(:label, project: project, title: '!@#{$%^&*()-+[]<>?/:{}|\}')
        special_issue = create(:issue, title: "Issue with special character label", project: project)
        special_issue.labels << special_label
C
Clement Ho 已提交
169

C
Clement Ho 已提交
170
        input_filtered_search("label:~#{special_label.title}")
171 172

        expect_tokens([label_token(special_label.title)])
C
Clement Ho 已提交
173
        expect_issues_list_count(1)
C
Clement Ho 已提交
174
        expect_filtered_search_input_empty
C
Clement Ho 已提交
175 176
      end

177
      it 'does not show issues for unused labels' do
C
Clement Ho 已提交
178
        new_label = create(:label, project: project, title: 'new_label')
C
Clement Ho 已提交
179

C
Clement Ho 已提交
180
        input_filtered_search("label:~#{new_label.title}")
C
Clement Ho 已提交
181

182
        expect_tokens([label_token(new_label.title)])
183
        expect_no_issues_list
C
Clement Ho 已提交
184
        expect_filtered_search_input_empty
C
Clement Ho 已提交
185 186 187
      end
    end

C
Clement Ho 已提交
188
    context 'label with multiple words' do
C
Clement Ho 已提交
189 190 191 192 193
      it 'special characters' do
        special_multiple_label = create(:label, project: project, title: "Utmost |mp0rt@nce")
        special_multiple_issue = create(:issue, title: "Issue with special character multiple words label", project: project)
        special_multiple_issue.labels << special_multiple_label

C
Clement Ho 已提交
194
        input_filtered_search("label:~'#{special_multiple_label.title}'")
C
Clement Ho 已提交
195

196
        # Check for search results (which makes sure that the page has changed)
C
Clement Ho 已提交
197
        expect_issues_list_count(1)
C
Clement Ho 已提交
198

199 200 201
        # filtered search defaults quotations to double quotes
        expect_tokens([label_token("\"#{special_multiple_label.title}\"")])

C
Clement Ho 已提交
202
        expect_filtered_search_input_empty
C
Clement Ho 已提交
203 204 205
      end

      it 'single quotes' do
C
Clement Ho 已提交
206
        input_filtered_search("label:~'#{multiple_words_label.title}'")
C
Clement Ho 已提交
207

C
Clement Ho 已提交
208
        expect_issues_list_count(1)
209
        expect_tokens([label_token("\"#{multiple_words_label.title}\"")])
C
Clement Ho 已提交
210
        expect_filtered_search_input_empty
C
Clement Ho 已提交
211 212 213
      end

      it 'double quotes' do
C
Clement Ho 已提交
214
        input_filtered_search("label:~\"#{multiple_words_label.title}\"")
C
Clement Ho 已提交
215

216
        expect_tokens([label_token("\"#{multiple_words_label.title}\"")])
C
Clement Ho 已提交
217
        expect_issues_list_count(1)
C
Clement Ho 已提交
218
        expect_filtered_search_input_empty
C
Clement Ho 已提交
219 220 221
      end

      it 'single quotes containing double quotes' do
222 223 224
        double_quotes_label = create(:label, project: project, title: 'won"t fix')
        double_quotes_label_issue = create(:issue, title: "Issue with double quotes label", project: project)
        double_quotes_label_issue.labels << double_quotes_label
C
Clement Ho 已提交
225

C
Clement Ho 已提交
226
        input_filtered_search("label:~'#{double_quotes_label.title}'")
C
Clement Ho 已提交
227

228
        expect_tokens([label_token("'#{double_quotes_label.title}'")])
229
        expect_issues_list_count(1)
C
Clement Ho 已提交
230
        expect_filtered_search_input_empty
C
Clement Ho 已提交
231 232 233 234 235 236 237
      end

      it 'double quotes containing single quotes' do
        single_quotes_label = create(:label, project: project, title: "won't fix")
        single_quotes_label_issue = create(:issue, title: "Issue with single quotes label", project: project)
        single_quotes_label_issue.labels << single_quotes_label

C
Clement Ho 已提交
238
        input_filtered_search("label:~\"#{single_quotes_label.title}\"")
C
Clement Ho 已提交
239

240
        expect_tokens([label_token("\"#{single_quotes_label.title}\"")])
C
Clement Ho 已提交
241
        expect_issues_list_count(1)
C
Clement Ho 已提交
242
        expect_filtered_search_input_empty
C
Clement Ho 已提交
243
      end
244
    end
245

C
Clement Ho 已提交
246
    context 'multiple labels with other filters' do
C
Clement Ho 已提交
247
      it 'filters issues by searched label, label2, author, assignee, milestone and text' do
248 249
        search_term = 'bug'

C
Clement Ho 已提交
250
        input_filtered_search("label:~#{bug_label.title} label:~#{caps_sensitive_label.title} author:@#{user.username} assignee:@#{user.username} milestone:%#{milestone.title} #{search_term}")
C
Clement Ho 已提交
251

252 253
        wait_for_requests

C
Clement Ho 已提交
254
        expect_tokens([
255 256 257 258 259
          label_token(bug_label.title),
          label_token(caps_sensitive_label.title),
          author_token(user.name),
          assignee_token(user.name),
          milestone_token(milestone.title)
C
Clement Ho 已提交
260
        ])
C
Clement Ho 已提交
261
        expect_issues_list_count(1)
C
Clement Ho 已提交
262
        expect_filtered_search_input(search_term)
C
Clement Ho 已提交
263
      end
264 265
    end

C
Clement Ho 已提交
266
    context 'issue label clicked' do
267
      it 'filters and displays in search bar' do
268
        find('.issues-list .issue .issuable-main-info .issuable-info a .badge', text: multiple_words_label.title).click
C
Clement Ho 已提交
269 270

        expect_issues_list_count(1)
271
        expect_tokens([label_token("\"#{multiple_words_label.title}\"")])
C
Clement Ho 已提交
272
        expect_filtered_search_input_empty
C
Clement Ho 已提交
273 274
      end
    end
P
Phil Hughes 已提交
275 276
  end

C
Clement Ho 已提交
277
  describe 'filter issues by milestone' do
C
Clement Ho 已提交
278
    context 'only milestone' do
C
Clement Ho 已提交
279
      it 'filters issues by searched milestone' do
280
        input_filtered_search("milestone:%#{milestone.title}")
C
Clement Ho 已提交
281

282
        expect_tokens([milestone_token(milestone.title)])
C
Clement Ho 已提交
283
        expect_issues_list_count(5)
C
Clement Ho 已提交
284
        expect_filtered_search_input_empty
C
Clement Ho 已提交
285
      end
A
Arinde Eniola 已提交
286

C
Clement Ho 已提交
287
      it 'filters issues by no milestone' do
288
        input_filtered_search("milestone:none")
C
Clement Ho 已提交
289

290
        expect_tokens([milestone_token('None', false)])
291
        expect_issues_list_count(3)
C
Clement Ho 已提交
292
        expect_filtered_search_input_empty
C
Clement Ho 已提交
293
      end
A
Arinde Eniola 已提交
294

C
Clement Ho 已提交
295
      it 'filters issues by upcoming milestones' do
296 297 298 299
        create(:milestone, project: project, due_date: 1.month.from_now) do |future_milestone|
          create(:issue, project: project, milestone: future_milestone, author: user)
        end

300
        input_filtered_search("milestone:upcoming")
C
Clement Ho 已提交
301

302
        expect_tokens([milestone_token('Upcoming', false)])
303
        expect_issues_list_count(1)
C
Clement Ho 已提交
304
        expect_filtered_search_input_empty
C
Clement Ho 已提交
305
      end
A
Arinde Eniola 已提交
306

307 308 309
      it 'filters issues by started milestones' do
        input_filtered_search("milestone:started")

310
        expect_tokens([milestone_token('Started', false)])
311 312 313 314
        expect_issues_list_count(5)
        expect_filtered_search_input_empty
      end

C
Clement Ho 已提交
315 316
      it 'filters issues by milestone containing special characters' do
        special_milestone = create(:milestone, title: '!@\#{$%^&*()}', project: project)
317
        create(:issue, project: project, milestone: special_milestone)
C
Clement Ho 已提交
318

C
Clement Ho 已提交
319
        input_filtered_search("milestone:%#{special_milestone.title}")
C
Clement Ho 已提交
320

321
        expect_tokens([milestone_token(special_milestone.title)])
C
Clement Ho 已提交
322
        expect_issues_list_count(1)
C
Clement Ho 已提交
323
        expect_filtered_search_input_empty
C
Clement Ho 已提交
324 325
      end

326 327
      it 'does not show issues for unused milestones' do
        new_milestone = create(:milestone, title: 'new', project: project)
C
Clement Ho 已提交
328

C
Clement Ho 已提交
329
        input_filtered_search("milestone:%#{new_milestone.title}")
C
Clement Ho 已提交
330

331
        expect_tokens([milestone_token(new_milestone.title)])
332
        expect_no_issues_list
C
Clement Ho 已提交
333
        expect_filtered_search_input_empty
C
Clement Ho 已提交
334
      end
A
Arinde Eniola 已提交
335
    end
C
Clement Ho 已提交
336
  end
P
Phil Hughes 已提交
337

C
Clement Ho 已提交
338
  describe 'filter issues by text' do
C
Clement Ho 已提交
339
    context 'only text' do
340
      it 'filters issues by searched text' do
C
Clement Ho 已提交
341 342
        search = 'Bug'
        input_filtered_search(search)
C
Clement Ho 已提交
343

344
        expect_issues_list_count(4)
C
Clement Ho 已提交
345
        expect_filtered_search_input(search)
P
Phil Hughes 已提交
346 347
      end

C
Clement Ho 已提交
348
      it 'filters issues by multiple searched text' do
C
Clement Ho 已提交
349 350
        search = 'Bug report'
        input_filtered_search(search)
C
Clement Ho 已提交
351

C
Clement Ho 已提交
352
        expect_issues_list_count(3)
C
Clement Ho 已提交
353
        expect_filtered_search_input(search)
P
Phil Hughes 已提交
354 355
      end

C
Clement Ho 已提交
356
      it 'filters issues by case insensitive searched text' do
C
Clement Ho 已提交
357 358
        search = 'bug report'
        input_filtered_search(search)
C
Clement Ho 已提交
359

C
Clement Ho 已提交
360
        expect_issues_list_count(3)
C
Clement Ho 已提交
361
        expect_filtered_search_input(search)
P
Phil Hughes 已提交
362 363
      end

C
Clement Ho 已提交
364
      it 'filters issues by searched text containing single quotes' do
365 366 367
        issue = create(:issue, project: project, author: user, title: "issue with 'single quotes'")

        search = "'single quotes'"
C
Clement Ho 已提交
368
        input_filtered_search(search)
C
Clement Ho 已提交
369

C
Clement Ho 已提交
370
        expect_issues_list_count(1)
C
Clement Ho 已提交
371
        expect_filtered_search_input(search)
372
        expect(page).to have_content(issue.title)
P
Phil Hughes 已提交
373 374
      end

C
Clement Ho 已提交
375
      it 'filters issues by searched text containing double quotes' do
376 377
        issue = create(:issue, project: project, author: user, title: "issue with \"double quotes\"")

C
Clement Ho 已提交
378 379
        search = '"double quotes"'
        input_filtered_search(search)
C
Clement Ho 已提交
380

C
Clement Ho 已提交
381
        expect_issues_list_count(1)
C
Clement Ho 已提交
382
        expect_filtered_search_input(search)
383
        expect(page).to have_content(issue.title)
C
Clement Ho 已提交
384
      end
P
Phil Hughes 已提交
385

C
Clement Ho 已提交
386
      it 'filters issues by searched text containing special characters' do
387 388
        issue = create(:issue, project: project, author: user, title: "issue with !@\#{$%^&*()-+")

C
Clement Ho 已提交
389 390
        search = '!@#{$%^&*()-+'
        input_filtered_search(search)
C
Clement Ho 已提交
391

C
Clement Ho 已提交
392
        expect_issues_list_count(1)
C
Clement Ho 已提交
393
        expect_filtered_search_input(search)
394
        expect(page).to have_content(issue.title)
C
Clement Ho 已提交
395
      end
P
Phil Hughes 已提交
396

C
Clement Ho 已提交
397
      it 'does not show any issues' do
C
Clement Ho 已提交
398 399
        search = 'testing'
        input_filtered_search(search)
C
Clement Ho 已提交
400

401
        expect_no_issues_list
C
Clement Ho 已提交
402
        expect_filtered_search_input(search)
P
Phil Hughes 已提交
403
      end
C
Clement Ho 已提交
404
    end
P
Phil Hughes 已提交
405

C
Clement Ho 已提交
406
    context 'searched text with other filters' do
C
Clement Ho 已提交
407
      it 'filters issues by searched text, author, text, assignee, text, label1, text, label2, text, milestone and text' do
408
        input_filtered_search("bug author:@#{user.username} report label:~#{bug_label.title} label:~#{caps_sensitive_label.title} milestone:%#{milestone.title} foo")
C
Clement Ho 已提交
409

C
Clement Ho 已提交
410
        expect_issues_list_count(1)
411
        expect_filtered_search_input('bug report foo')
412 413
      end
    end
C
Clement Ho 已提交
414

C
Clement Ho 已提交
415
    context 'sorting' do
416 417
      it 'sorts by created date' do
        new_issue = create(:issue,
C
Clement Ho 已提交
418 419 420
          title: '3 days ago',
          project: project,
          author: user,
421
          created_at: 3.days.ago)
C
Clement Ho 已提交
422

423
        create(:issue,
C
Clement Ho 已提交
424 425 426
          title: '5 days ago',
          project: project,
          author: user,
427
          created_at: 5.days.ago)
C
Clement Ho 已提交
428 429

        input_filtered_search('days ago')
C
Clement Ho 已提交
430

C
Clement Ho 已提交
431 432
        expect_issues_list_count(2)

433
        sort_toggle = find('.filter-dropdown-container .dropdown')
C
Clement Ho 已提交
434
        sort_toggle.click
C
Clement Ho 已提交
435

436
        find('.filter-dropdown-container .dropdown-menu li a', text: 'Created date').click
437
        wait_for_requests
C
Clement Ho 已提交
438

439
        expect(find('.issues-list .issue:first-of-type .issue-title-text a')).to have_content(new_issue.title)
C
Clement Ho 已提交
440 441 442 443
      end
    end
  end

444
  describe 'switching issue states' do
445 446
    let!(:closed_issue) { create(:issue, :closed, project: project, title: 'closed bug') }

C
Clement Ho 已提交
447 448
    before do
      input_filtered_search('bug')
C
Clement Ho 已提交
449

C
Clement Ho 已提交
450 451
      # This ensures that the search is performed
      expect_issues_list_count(4, 1)
C
Clement Ho 已提交
452 453
    end

454 455
    it 'maintains filter' do
      # Closed
456
      find('.issues-state-filters [data-state="closed"]').click
457
      wait_for_requests
C
Clement Ho 已提交
458

459 460 461 462
      expect(page).to have_selector('.issues-list .issue', count: 1)
      expect(page).to have_link(closed_issue.title)

      # Opened
463
      find('.issues-state-filters [data-state="opened"]').click
464
      wait_for_requests
C
Clement Ho 已提交
465 466 467

      expect(page).to have_selector('.issues-list .issue', count: 4)

468
      # All
469
      find('.issues-state-filters [data-state="all"]').click
470
      wait_for_requests
C
Clement Ho 已提交
471

C
Clement Ho 已提交
472
      expect(page).to have_selector('.issues-list .issue', count: 5)
C
Clement Ho 已提交
473
    end
474
  end
475

476
  describe 'RSS feeds' do
477 478 479 480 481 482 483
    let(:group) { create(:group) }
    let(:project) { create(:project, group: group) }

    before do
      group.add_developer(user)
    end

484 485 486 487
    shared_examples 'updates atom feed link' do |type|
      it "for #{type}" do
        visit path

488
        link = find_link('Subscribe to RSS feed')
489 490 491 492 493
        params = CGI.parse(URI.parse(link[:href]).query)
        auto_discovery_link = find('link[type="application/atom+xml"]', visible: false)
        auto_discovery_params = CGI.parse(URI.parse(auto_discovery_link[:href]).query)

        expected = {
494
          'feed_token' => [user.feed_token],
495 496 497 498 499 500 501 502 503 504 505
          'milestone_title' => [milestone.title],
          'assignee_id' => [user.id.to_s]
        }

        expect(params).to include(expected)
        expect(auto_discovery_params).to include(expected)
      end
    end

    it_behaves_like 'updates atom feed link', :project do
      let(:path) { project_issues_path(project, milestone_title: milestone.title, assignee_id: user.id) }
506
    end
507

508 509
    it_behaves_like 'updates atom feed link', :group do
      let(:path) { issues_group_path(group, milestone_title: milestone.title, assignee_id: user.id) }
510
    end
L
Lin Jen-Shin 已提交
511 512 513 514 515 516 517 518 519 520 521 522 523 524 525

    it 'updates atom feed link for group issues' do
      visit issues_group_path(group, milestone_title: milestone.title, assignee_id: user.id)
      link = find('.nav-controls a[title="Subscribe to RSS feed"]', visible: false)
      params = CGI.parse(URI.parse(link[:href]).query)
      auto_discovery_link = find('link[type="application/atom+xml"]', visible: false)
      auto_discovery_params = CGI.parse(URI.parse(auto_discovery_link[:href]).query)

      expect(params).to include('feed_token' => [user.feed_token])
      expect(params).to include('milestone_title' => [milestone.title])
      expect(params).to include('assignee_id' => [user.id.to_s])
      expect(auto_discovery_params).to include('feed_token' => [user.feed_token])
      expect(auto_discovery_params).to include('milestone_title' => [milestone.title])
      expect(auto_discovery_params).to include('assignee_id' => [user.id.to_s])
    end
526
  end
A
Alfredo Sumaran 已提交
527 528 529

  context 'URL has a trailing slash' do
    before do
530
      visit "#{project_issues_path(project)}/"
A
Alfredo Sumaran 已提交
531 532 533 534 535 536
    end

    it 'milestone dropdown loads milestones' do
      input_filtered_search("milestone:", submit: false)

      within('#js-dropdown-milestone') do
537
        expect(page).to have_selector('.filter-dropdown .filter-dropdown-item', count: 1)
A
Alfredo Sumaran 已提交
538 539 540 541 542 543 544
      end
    end

    it 'label dropdown load labels' do
      input_filtered_search("label:", submit: false)

      within('#js-dropdown-label') do
545
        expect(page).to have_selector('.filter-dropdown .filter-dropdown-item', count: 3)
A
Alfredo Sumaran 已提交
546 547 548
      end
    end
  end
549
end