OSDN Git Service

d04945dfe35535669912e934aaedb5c2636e6da1
[wvm/gitlab.git] / spec / helpers / search_helper_spec.rb
1 require 'spec_helper'
2
3 describe SearchHelper do
4   # Override simple_sanitize for our testing purposes
5   def simple_sanitize(str)
6     str
7   end
8
9   describe 'search_autocomplete_source' do
10     context "with no current user" do
11       before do
12         allow(self).to receive(:current_user).and_return(nil)
13       end
14
15       it "it returns nil" do
16         search_autocomplete_opts("q").should be_nil
17       end
18     end
19
20     context "with a user" do
21       let(:user)   { create(:user) }
22
23       before do
24         allow(self).to receive(:current_user).and_return(user)
25       end
26
27       it "includes Help sections" do
28         search_autocomplete_opts("hel").size.should == 9
29       end
30
31       it "includes default sections" do
32         search_autocomplete_opts("adm").size.should == 1
33       end
34
35       it "includes the user's groups" do
36         create(:group).add_owner(user)
37         search_autocomplete_opts("gro").size.should == 1
38       end
39
40       it "includes the user's projects" do
41         project = create(:project, namespace: create(:namespace, owner: user))
42         search_autocomplete_opts(project.name).size.should == 1
43       end
44
45       context "with a current project" do
46         before { @project = create(:project_with_code) }
47
48         it "includes project-specific sections" do
49           search_autocomplete_opts("Files").size.should == 1
50           search_autocomplete_opts("Commits").size.should == 1
51         end
52       end
53     end
54   end
55 end