Commit 212db76e authored by Alex Kalderimis's avatar Alex Kalderimis

Tidy up starred projects spec

This reduces duplication and makes the spec a little more maintainable.
parent 94c9ea1b
...@@ -17,7 +17,13 @@ RSpec.describe 'Getting starredProjects of the user' do ...@@ -17,7 +17,13 @@ RSpec.describe 'Getting starredProjects of the user' do
let_it_be(:user, reload: true) { create(:user) } let_it_be(:user, reload: true) { create(:user) }
let(:user_fields) { 'starredProjects { nodes { id } }' } let(:user_fields) { 'starredProjects { nodes { id } }' }
let(:starred_projects) { graphql_data_at(:user, :starred_projects, :nodes) } let(:current_user) { nil }
let(:starred_projects) do
post_graphql(query, current_user: current_user)
graphql_data_at(:user, :starred_projects, :nodes)
end
before do before do
project_b.add_reporter(user) project_b.add_reporter(user)
...@@ -26,11 +32,13 @@ RSpec.describe 'Getting starredProjects of the user' do ...@@ -26,11 +32,13 @@ RSpec.describe 'Getting starredProjects of the user' do
user.toggle_star(project_a) user.toggle_star(project_a)
user.toggle_star(project_b) user.toggle_star(project_b)
user.toggle_star(project_c) user.toggle_star(project_c)
post_graphql(query)
end end
it_behaves_like 'a working graphql query' it_behaves_like 'a working graphql query' do
before do
post_graphql(query)
end
end
it 'found only public project' do it 'found only public project' do
expect(starred_projects).to contain_exactly( expect(starred_projects).to contain_exactly(
...@@ -41,10 +49,6 @@ RSpec.describe 'Getting starredProjects of the user' do ...@@ -41,10 +49,6 @@ RSpec.describe 'Getting starredProjects of the user' do
context 'the current user is the user' do context 'the current user is the user' do
let(:current_user) { user } let(:current_user) { user }
before do
post_graphql(query, current_user: current_user)
end
it 'found all projects' do it 'found all projects' do
expect(starred_projects).to contain_exactly( expect(starred_projects).to contain_exactly(
a_hash_including('id' => global_id_of(project_a)), a_hash_including('id' => global_id_of(project_a)),
...@@ -56,11 +60,10 @@ RSpec.describe 'Getting starredProjects of the user' do ...@@ -56,11 +60,10 @@ RSpec.describe 'Getting starredProjects of the user' do
context 'the current user is a member of a private project the user starred' do context 'the current user is a member of a private project the user starred' do
let_it_be(:other_user) { create(:user) } let_it_be(:other_user) { create(:user) }
let(:current_user) { other_user }
before do before do
project_b.add_reporter(other_user) project_b.add_reporter(other_user)
post_graphql(query, current_user: other_user)
end end
it 'finds public and member projects' do it 'finds public and member projects' do
...@@ -74,7 +77,6 @@ RSpec.describe 'Getting starredProjects of the user' do ...@@ -74,7 +77,6 @@ RSpec.describe 'Getting starredProjects of the user' do
context 'the user has a private profile' do context 'the user has a private profile' do
before do before do
user.update!(private_profile: true) user.update!(private_profile: true)
post_graphql(query, current_user: current_user)
end end
context 'the current user does not have access to view the private profile of the user' do context 'the current user does not have access to view the private profile of the user' do
......
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