diff options
Diffstat (limited to 'spec/requests/api/graphql/achievements/user_achievements_query_spec.rb')
-rw-r--r-- | spec/requests/api/graphql/achievements/user_achievements_query_spec.rb | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/spec/requests/api/graphql/achievements/user_achievements_query_spec.rb b/spec/requests/api/graphql/achievements/user_achievements_query_spec.rb index fa47cf4988a..32048ea1432 100644 --- a/spec/requests/api/graphql/achievements/user_achievements_query_spec.rb +++ b/spec/requests/api/graphql/achievements/user_achievements_query_spec.rb @@ -39,7 +39,9 @@ RSpec.describe 'UserAchievements', feature_category: :user_profile do HEREDOC end - let_it_be(:query) do + let(:current_user) { user } + + let(:query) do graphql_query_for('namespace', { full_path: group.full_path }, fields) end @@ -48,7 +50,7 @@ RSpec.describe 'UserAchievements', feature_category: :user_profile do end before do - post_graphql(query, current_user: user) + post_graphql(query, current_user: current_user) end it_behaves_like 'a working graphql query' @@ -65,6 +67,27 @@ RSpec.describe 'UserAchievements', feature_category: :user_profile do expect(graphql_data_at(:namespace, :achievements, :nodes, :userAchievements, :count)).to contain_exactly(1) end + context 'when user_achievement has priority set' do + let_it_be(:achievement_with_priority) do + create(:user_achievement, achievement: achievement, user: user, priority: 0) + end + + let(:userquery_fields) do + "userAchievements { nodes { id } }" + end + + let(:query) do + graphql_query_for('user', { username: user.username }, userquery_fields) + end + + it 'returns achievements in correct order' do + expect(graphql_data_at(:user, :userAchievements, :nodes).pluck('id')).to eq([ + achievement_with_priority.to_global_id.to_s, + non_revoked_achievement1.to_global_id.to_s + ]) + end + end + it 'can lookahead to eliminate N+1 queries', :use_clean_rails_memory_store_caching do control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do post_graphql(query, current_user: user) |