diff options
Diffstat (limited to 'spec/models/user_spec.rb')
-rw-r--r-- | spec/models/user_spec.rb | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 78477ab0a5a..85b157a9435 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -925,6 +925,21 @@ describe User do expect(user.manageable_groups).to contain_exactly(group, subgroup) end end + + describe '#manageable_groups_with_routes' do + it 'eager loads routes from manageable groups' do + control_count = + ActiveRecord::QueryRecorder.new(skip_cached: false) do + user.manageable_groups_with_routes.map(&:route) + end.count + + create(:group, parent: subgroup) + + expect do + user.manageable_groups_with_routes.map(&:route) + end.not_to exceed_all_query_limit(control_count) + end + end end end @@ -961,43 +976,43 @@ describe User do end end - describe '.filter' do + describe '.filter_items' do let(:user) { double } it 'filters by active users by default' do expect(described_class).to receive(:active).and_return([user]) - expect(described_class.filter(nil)).to include user + expect(described_class.filter_items(nil)).to include user end it 'filters by admins' do expect(described_class).to receive(:admins).and_return([user]) - expect(described_class.filter('admins')).to include user + expect(described_class.filter_items('admins')).to include user end it 'filters by blocked' do expect(described_class).to receive(:blocked).and_return([user]) - expect(described_class.filter('blocked')).to include user + expect(described_class.filter_items('blocked')).to include user end it 'filters by two_factor_disabled' do expect(described_class).to receive(:without_two_factor).and_return([user]) - expect(described_class.filter('two_factor_disabled')).to include user + expect(described_class.filter_items('two_factor_disabled')).to include user end it 'filters by two_factor_enabled' do expect(described_class).to receive(:with_two_factor).and_return([user]) - expect(described_class.filter('two_factor_enabled')).to include user + expect(described_class.filter_items('two_factor_enabled')).to include user end it 'filters by wop' do expect(described_class).to receive(:without_projects).and_return([user]) - expect(described_class.filter('wop')).to include user + expect(described_class.filter_items('wop')).to include user end end |