diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-18 09:09:31 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-18 09:09:31 +0300 |
commit | 0115b63f646be489bb9685dad0e4b0747a79de05 (patch) | |
tree | 1739ce6f3e7ab90db561e3415bd34427f4839b40 /spec/lib | |
parent | 37ea4b5fbf55e039a2255f0f5d5508e5f479775c (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/lib')
-rw-r--r-- | spec/lib/gitlab/search/recent_issues_spec.rb | 84 | ||||
-rw-r--r-- | spec/lib/gitlab/search/recent_merge_requests_spec.rb | 11 |
2 files changed, 15 insertions, 80 deletions
diff --git a/spec/lib/gitlab/search/recent_issues_spec.rb b/spec/lib/gitlab/search/recent_issues_spec.rb index 1822c971a72..19a41d2aa38 100644 --- a/spec/lib/gitlab/search/recent_issues_spec.rb +++ b/spec/lib/gitlab/search/recent_issues_spec.rb @@ -2,86 +2,10 @@ require 'spec_helper' -RSpec.describe ::Gitlab::Search::RecentIssues, :clean_gitlab_redis_shared_state do - let(:user) { create(:user) } - let(:issue) { create(:issue, title: 'hello world 1', project: project) } - let(:recent_issues) { described_class.new(user: user, items_limit: 5) } - let(:project) { create(:project, :public) } - - describe '#log_viewing' do - it 'adds the item to the recent items' do - recent_issues.log_view(issue) - - results = recent_issues.search('hello') - - expect(results).to eq([issue]) - end - - it 'removes an item when it exceeds the size items_limit' do - (1..6).each do |i| - recent_issues.log_view(create(:issue, title: "issue #{i}", project: project)) - end - - results = recent_issues.search('issue') - - expect(results.map(&:title)).to contain_exactly('issue 6', 'issue 5', 'issue 4', 'issue 3', 'issue 2') - end - - it 'expires the items after expires_after' do - recent_issues = described_class.new(user: user, expires_after: 0) - - recent_issues.log_view(issue) - - results = recent_issues.search('hello') - - expect(results).to be_empty - end - - it 'does not include results logged for another user' do - another_user = create(:user) - another_issue = create(:issue, title: 'hello world 2', project: project) - described_class.new(user: another_user).log_view(another_issue) - recent_issues.log_view(issue) - - results = recent_issues.search('hello') - - expect(results).to eq([issue]) - end +RSpec.describe ::Gitlab::Search::RecentIssues do + def create_item(content:, project:) + create(:issue, title: content, project: project) end - describe '#search' do - let(:issue1) { create(:issue, title: "matching issue 1", project: project) } - let(:issue2) { create(:issue, title: "matching issue 2", project: project) } - let(:issue3) { create(:issue, title: "matching issue 3", project: project) } - let(:non_matching_issue) { create(:issue, title: "different issue", project: project) } - let!(:non_viewed_issued) { create(:issue, title: "matching but not viewed issue", project: project) } - - before do - recent_issues.log_view(issue1) - recent_issues.log_view(issue2) - recent_issues.log_view(issue3) - recent_issues.log_view(non_matching_issue) - end - - it 'matches partial text in the issue title' do - expect(recent_issues.search('matching')).to contain_exactly(issue1, issue2, issue3) - end - - it 'returns results sorted by recently viewed' do - recent_issues.log_view(issue2) - - expect(recent_issues.search('matching')).to eq([issue2, issue3, issue1]) - end - - it 'does not leak issues you no longer have access to' do - private_project = create(:project, :public, namespace: create(:group)) - private_issue = create(:issue, project: private_project, title: 'matching issue title') - - recent_issues.log_view(private_issue) - - private_project.update!(visibility_level: Project::PRIVATE) - - expect(recent_issues.search('matching')).not_to include(private_issue) - end - end + it_behaves_like 'search recent items' end diff --git a/spec/lib/gitlab/search/recent_merge_requests_spec.rb b/spec/lib/gitlab/search/recent_merge_requests_spec.rb new file mode 100644 index 00000000000..c6678ce0342 --- /dev/null +++ b/spec/lib/gitlab/search/recent_merge_requests_spec.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe ::Gitlab::Search::RecentMergeRequests do + def create_item(content:, project:) + create(:merge_request, :unique_branches, title: content, target_project: project, source_project: project) + end + + it_behaves_like 'search recent items' +end |