mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: N+1 for admins viewing groups page
Groups page was loading fields that are only used on the group show page, so move those fields to the GroupShowSerializer. Also only fetch the default category and tag notifications once.
This commit is contained in:
@@ -40,22 +40,6 @@ describe BasicGroupSerializer do
|
||||
end
|
||||
end
|
||||
|
||||
describe '#automatic_membership_email_domains' do
|
||||
fab!(:group) { Fabricate(:group, automatic_membership_email_domains: 'ilovediscourse.com') }
|
||||
let(:admin_guardian) { Guardian.new(Fabricate(:admin)) }
|
||||
|
||||
it 'should include email domains for admin' do
|
||||
subject = described_class.new(group, scope: admin_guardian, root: false, owner_group_ids: [group.id])
|
||||
expect(subject.as_json[:automatic_membership_email_domains]).to eq('ilovediscourse.com')
|
||||
end
|
||||
|
||||
it 'should not include email domains for other users' do
|
||||
subject = described_class.new(group, scope: guardian, root: false, owner_group_ids: [group.id])
|
||||
expect(subject.as_json[:automatic_membership_email_domains]).to eq(nil)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe '#has_messages' do
|
||||
fab!(:group) { Fabricate(:group, has_messages: true) }
|
||||
|
||||
@@ -113,26 +97,4 @@ describe BasicGroupSerializer do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'admin only fields' do
|
||||
fab!(:group) { Fabricate(:group, email_username: 'foo@bar.com', email_password: 'pa$$w0rd') }
|
||||
|
||||
describe 'for a user' do
|
||||
let(:guardian) { Guardian.new(Fabricate(:user)) }
|
||||
|
||||
it 'are not visible' do
|
||||
expect(subject.as_json[:email_username]).to be_nil
|
||||
expect(subject.as_json[:email_password]).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
describe 'for an admin' do
|
||||
let(:guardian) { Guardian.new(Fabricate(:admin)) }
|
||||
|
||||
it 'are visible' do
|
||||
expect(subject.as_json[:email_username]).to eq('foo@bar.com')
|
||||
expect(subject.as_json[:email_password]).to eq('pa$$w0rd')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user