Commit 73af33e4b1aed1cbde3644a0e94ab2d40340e31b

Authored by Dmitriy Zaporozhets
1 parent 34f994b7

Improve FilterContext tests

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Showing 1 changed file with 32 additions and 26 deletions   Show diff stats
spec/contexts/filter_context_spec.rb
1 1 require 'spec_helper'
2 2  
3 3 describe FilterContext do
4   -
5 4 let(:user) { create :user }
6 5 let(:user2) { create :user }
7   - let(:project1) { create(:project, creator_id: user.id) }
8   - let(:project2) { create(:project, creator_id: user.id) }
9   - let(:merge_request1) { create(:merge_request, author_id: user.id, source_project: project1, target_project: project2) }
10   - let(:merge_request2) { create(:merge_request, author_id: user.id, source_project: project2, target_project: project1) }
11   - let(:merge_request3) { create(:merge_request, author_id: user.id, source_project: project2, target_project: project2) }
12   - let(:merge_request4) { create(:merge_request, author_id: user2.id, source_project: project2, target_project: project2, target_branch:"notes_refactoring") }
13   - let(:issue1) { create(:issue, assignee_id: user.id, project: project1) }
14   - let(:issue2) { create(:issue, assignee_id: user.id, project: project2) }
15   - let(:issue3) { create(:issue, assignee_id: user2.id, project: project2) }
  6 + let(:project1) { create(:project) }
  7 + let(:project2) { create(:project) }
  8 + let(:merge_request1) { create(:merge_request, author: user, source_project: project1, target_project: project2) }
  9 + let(:merge_request2) { create(:merge_request, author: user, source_project: project2, target_project: project1) }
  10 + let(:merge_request3) { create(:merge_request, author: user, source_project: project2, target_project: project2) }
  11 + let(:issue1) { create(:issue, assignee: user, project: project1) }
  12 + let(:issue2) { create(:issue, assignee: user, project: project2) }
  13 + let(:issue3) { create(:issue, assignee: user2, project: project2) }
  14 +
  15 + before do
  16 + project1.team << [user, :master]
  17 + project2.team << [user, :developer]
  18 + end
16 19  
17 20 describe 'merge requests' do
18 21 before :each do
19 22 merge_request1
20 23 merge_request2
21 24 merge_request3
22   - merge_request4
23 25 end
24 26  
25   - it 'should by default filter properly' do
26   - merge_requests = user.cared_merge_requests
27   - params ={}
28   - merge_requests = FilterContext.new(merge_requests, params).execute
  27 + it 'should filter by scope' do
  28 + params = { scope: 'authored' }
  29 + merge_requests = FilterContext.new(MergeRequest, user, params).execute
29 30 merge_requests.size.should == 3
30 31 end
31 32  
32   - it 'should apply blocks passed in on creation to the filters' do
33   - merge_requests = user.cared_merge_requests
34   - params = {:project_id => project1.id}
35   - merge_requests = FilterContext.new(merge_requests, params).execute
  33 + it 'should filter by project' do
  34 + params = { project_id: project1.id, scope: 'authored' }
  35 + merge_requests = FilterContext.new(MergeRequest, user, params).execute
36 36 merge_requests.size.should == 1
37 37 end
38 38 end
... ... @@ -43,16 +43,22 @@ describe FilterContext do
43 43 issue2
44 44 issue3
45 45 end
46   - it 'should by default filter projects properly' do
47   - issues = user.assigned_issues
  46 +
  47 + it 'should filter by all' do
  48 + params = { scope: "all" }
  49 + issues = FilterContext.new(Issue, user, params).execute
  50 + issues.size.should == 3
  51 + end
  52 +
  53 + it 'should filter by assignee' do
48 54 params = {}
49   - issues = FilterContext.new(issues, params).execute
  55 + issues = FilterContext.new(Issue, user, params).execute
50 56 issues.size.should == 2
51 57 end
52   - it 'should apply blocks passed in on creation to the filters' do
53   - issues = user.assigned_issues
54   - params = {:project_id => project1.id}
55   - issues = FilterContext.new(issues, params).execute
  58 +
  59 + it 'should filter by project' do
  60 + params = { project_id: project1.id }
  61 + issues = FilterContext.new(Issue, user, params).execute
56 62 issues.size.should == 1
57 63 end
58 64 end
... ...