2019-04-29 20:27:42 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2017-05-05 02:34:47 -04:00
|
|
|
require 'rails_helper'
|
|
|
|
|
|
|
|
describe BasicGroupSerializer do
|
2018-04-17 03:56:55 -04:00
|
|
|
let(:guardian) { Guardian.new }
|
2019-05-06 23:12:20 -04:00
|
|
|
fab!(:group) { Fabricate(:group) }
|
2018-05-17 06:10:17 -04:00
|
|
|
subject { described_class.new(group, scope: guardian, root: false) }
|
2017-05-05 02:34:47 -04:00
|
|
|
|
|
|
|
describe '#display_name' do
|
|
|
|
describe 'automatic group' do
|
|
|
|
let(:group) { Group.find(1) }
|
|
|
|
|
|
|
|
it 'should include the display name' do
|
|
|
|
expect(subject.display_name).to eq(I18n.t('groups.default_names.admins'))
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe 'normal group' do
|
2019-05-06 23:12:20 -04:00
|
|
|
fab!(:group) { Fabricate(:group) }
|
2017-05-05 02:34:47 -04:00
|
|
|
|
|
|
|
it 'should not include the display name' do
|
|
|
|
expect(subject.display_name).to eq(nil)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2018-04-17 03:56:55 -04:00
|
|
|
|
|
|
|
describe '#bio_raw' do
|
2019-05-06 23:12:20 -04:00
|
|
|
fab!(:group) { Fabricate(:group, bio_raw: 'testing') }
|
2018-04-17 03:56:55 -04:00
|
|
|
|
2018-05-17 06:10:17 -04:00
|
|
|
subject do
|
|
|
|
described_class.new(group, scope: guardian, root: false, owner_group_ids: [group.id])
|
2018-04-17 03:56:55 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
describe 'group owner' do
|
|
|
|
it 'should include bio_raw' do
|
2018-05-17 06:10:17 -04:00
|
|
|
expect(subject.as_json[:bio_raw]).to eq('testing')
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2018-12-14 10:47:00 -05:00
|
|
|
describe '#automatic_membership_email_domains' do
|
2019-05-06 23:12:20 -04:00
|
|
|
fab!(:group) { Fabricate(:group, automatic_membership_email_domains: 'ilovediscourse.com', automatic_membership_retroactive: true) }
|
2018-12-14 10:47:00 -05:00
|
|
|
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')
|
|
|
|
expect(subject.as_json[:automatic_membership_retroactive]).to eq(true)
|
|
|
|
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)
|
|
|
|
expect(subject.as_json[:automatic_membership_retroactive]).to eq(nil)
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
2018-05-17 06:10:17 -04:00
|
|
|
describe '#has_messages' do
|
2019-05-06 23:12:20 -04:00
|
|
|
fab!(:group) { Fabricate(:group, has_messages: true) }
|
2018-05-17 06:10:17 -04:00
|
|
|
|
|
|
|
describe 'for a staff user' do
|
|
|
|
let(:guardian) { Guardian.new(Fabricate(:moderator)) }
|
|
|
|
|
|
|
|
it 'should be present' do
|
|
|
|
expect(subject.as_json[:has_messages]).to eq(true)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe 'for a group user' do
|
2019-05-06 23:12:20 -04:00
|
|
|
fab!(:user) { Fabricate(:user) }
|
2018-05-17 06:10:17 -04:00
|
|
|
let(:guardian) { Guardian.new(user) }
|
|
|
|
|
|
|
|
before do
|
|
|
|
group.add(user)
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should be present' do
|
|
|
|
expect(subject.as_json[:has_messages]).to eq(true)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe 'for a normal user' do
|
|
|
|
let(:guardian) { Guardian.new(Fabricate(:user)) }
|
|
|
|
|
|
|
|
it 'should not be present' do
|
|
|
|
expect(subject.as_json[:has_messages]).to eq(nil)
|
2018-04-17 03:56:55 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2017-05-05 02:34:47 -04:00
|
|
|
end
|