diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2019-08-19 23:33:07 +0300 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2019-08-19 23:35:46 +0300 |
commit | 2067f677df69200338d8d2b78f239759fc293fee (patch) | |
tree | cf7c0f575348e3cba1fdec0b223718d8261e843a /spec/controllers | |
parent | 50ff074e79a67a14abdd9f5fcce8d6c7729b179f (diff) |
Fix N+1s queries while loading users
Diffstat (limited to 'spec/controllers')
-rw-r--r-- | spec/controllers/projects/starrers_controller_spec.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/spec/controllers/projects/starrers_controller_spec.rb b/spec/controllers/projects/starrers_controller_spec.rb index 7085cba08d5..5774ff7c576 100644 --- a/spec/controllers/projects/starrers_controller_spec.rb +++ b/spec/controllers/projects/starrers_controller_spec.rb @@ -32,6 +32,20 @@ describe Projects::StarrersController do end end + context 'N+1 queries' do + render_views + + it 'avoids N+1s loading users', :request_store do + get_starrers + + control_count = ActiveRecord::QueryRecorder.new { get_starrers }.count + + create_list(:user, 5).each { |user| user.toggle_star(project) } + + expect { get_starrers }.not_to exceed_query_limit(control_count) + end + end + context 'when project is public' do before do project.update_attribute(:visibility_level, Project::PUBLIC) |