2016-06-01 15:39:12 +00:00
|
|
|
require 'spec_helper'
|
|
|
|
|
|
|
|
describe Banzai::Filter::AbstractReferenceFilter do
|
|
|
|
let(:project) { create(:empty_project) }
|
|
|
|
|
|
|
|
describe '#references_per_project' do
|
|
|
|
it 'returns a Hash containing references grouped per project paths' do
|
|
|
|
doc = Nokogiri::HTML.fragment("#1 #{project.to_reference}#2")
|
|
|
|
filter = described_class.new(doc, project: project)
|
|
|
|
|
2016-06-18 17:55:45 +00:00
|
|
|
expect(filter).to receive(:object_class).exactly(4).times.and_return(Issue)
|
2016-06-01 15:39:12 +00:00
|
|
|
expect(filter).to receive(:object_sym).twice.and_return(:issue)
|
|
|
|
|
|
|
|
refs = filter.references_per_project
|
|
|
|
|
|
|
|
expect(refs).to be_an_instance_of(Hash)
|
|
|
|
expect(refs[project.to_reference]).to eq(Set.new(%w[1 2]))
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe '#projects_per_reference' do
|
|
|
|
it 'returns a Hash containing projects grouped per project paths' do
|
|
|
|
doc = Nokogiri::HTML.fragment('')
|
|
|
|
filter = described_class.new(doc, project: project)
|
|
|
|
|
|
|
|
expect(filter).to receive(:references_per_project).
|
|
|
|
and_return({ project.path_with_namespace => Set.new(%w[1]) })
|
|
|
|
|
|
|
|
expect(filter.projects_per_reference).
|
|
|
|
to eq({ project.path_with_namespace => project })
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe '#find_projects_for_paths' do
|
|
|
|
it 'returns a list of Projects for a list of paths' do
|
|
|
|
doc = Nokogiri::HTML.fragment('')
|
|
|
|
filter = described_class.new(doc, project: project)
|
|
|
|
|
|
|
|
expect(filter.find_projects_for_paths([project.path_with_namespace])).
|
|
|
|
to eq([project])
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe '#current_project_path' do
|
|
|
|
it 'returns the path of the current project' do
|
|
|
|
doc = Nokogiri::HTML.fragment('')
|
|
|
|
filter = described_class.new(doc, project: project)
|
|
|
|
|
|
|
|
expect(filter.current_project_path).to eq(project.path_with_namespace)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|