Commit dda10f5a authored by Jonathan Schafer's avatar Jonathan Schafer

Update tests

parent abb677dd
...@@ -364,28 +364,28 @@ RSpec.describe ProjectsFinder do ...@@ -364,28 +364,28 @@ RSpec.describe ProjectsFinder do
end end
describe 'sorting' do describe 'sorting' do
let_it_be(:more_projects) do
[
create(:project, :internal, group: group, name: 'projA', path: 'projA'),
create(:project, :internal, group: group, name: 'projABC', path: 'projABC'),
create(:project, :internal, group: group, name: 'projAB', path: 'projAB')
]
end
context 'when sorting by a field' do context 'when sorting by a field' do
let(:params) { { sort: 'name_asc' } } let(:params) { { sort: 'name_asc' } }
it { is_expected.to eq([internal_project, public_project]) } it { is_expected.to eq(([internal_project, public_project] + more_projects).sort_by { |p| p[:name] }) }
end end
context 'when sorting by similarity' do context 'when sorting by similarity' do
let(:params) { { sort: 'similarity', search: 'pro' } } let(:params) { { sort: 'similarity', search: 'pro' } }
let_it_be(:internal_project2) do it { is_expected.to eq([more_projects[0], more_projects[2], more_projects[1]]) }
create(:project, :internal, group: group, name: 'projA', path: 'projA') end
end
let_it_be(:internal_project3) do
create(:project, :internal, group: group, name: 'projABC', path: 'projABC')
end
let_it_be(:internal_project4) do
create(:project, :internal, group: group, name: 'projAB', path: 'projAB')
end
it { is_expected.to eq([internal_project2, internal_project4, internal_project3]) } context 'when no sort is provided' do
it { is_expected.to eq(([internal_project, public_project] + more_projects).sort_by { |p| p[:id] }.reverse) }
end end
end end
......
...@@ -79,6 +79,7 @@ RSpec.describe Resolvers::ProjectsResolver do ...@@ -79,6 +79,7 @@ RSpec.describe Resolvers::ProjectsResolver do
context 'when user is logged in' do context 'when user is logged in' do
let(:current_user) { user } let(:current_user) { user }
let(:visible_projecs) { [project, other_project, group_project, private_project, private_group_project] }
context 'when no filters are applied' do context 'when no filters are applied' do
it 'returns all visible projects for the user' do it 'returns all visible projects for the user' do
...@@ -125,15 +126,24 @@ RSpec.describe Resolvers::ProjectsResolver do ...@@ -125,15 +126,24 @@ RSpec.describe Resolvers::ProjectsResolver do
end end
end end
context 'when sort is similarity' do context 'when sorting' do
let_it_be(:named_project1) { create(:project, :public, name: 'projAB', path: 'projAB') } let_it_be(:named_project1) { create(:project, :public, name: 'projAB', path: 'projAB') }
let_it_be(:named_project2) { create(:project, :public, name: 'projABC', path: 'projABC') } let_it_be(:named_project2) { create(:project, :public, name: 'projABC', path: 'projABC') }
let_it_be(:named_project3) { create(:project, :public, name: 'projA', path: 'projA') } let_it_be(:named_project3) { create(:project, :public, name: 'projA', path: 'projA') }
let_it_be(:named_projects) { [named_project1, named_project2, named_project3] }
let(:filters) { { search: 'projA', sort: 'similarity' } } context 'when sorting by similarity' do
let(:filters) { { search: 'projA', sort: 'similarity' } }
it 'returns projects in order of similarity to search' do it 'returns projects in order of similarity to search' do
is_expected.to eq([named_project3, named_project1, named_project2]) is_expected.to eq([named_project3, named_project1, named_project2])
end
end
context 'when no sort is provided' do
it 'returns projects in descending order by id' do
is_expected.to match_array((visible_projecs + named_projects).sort_by { |p| p[:id]}.reverse )
end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment