discourse-assign/spec/models/user_spec.rb

61 lines
1.4 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
RSpec.describe User do
let(:group) { Fabricate(:group) }
before do
SiteSetting.assign_enabled = true
SiteSetting.assign_allowed_on_groups = group.name
end
describe '.assign_allowed' do
it 'retrieves the user when is a member of an allowed group' do
user = Fabricate(:user)
group.add(user)
expect(User.assign_allowed).to include(user)
end
it "doesn't retrieve the user when is not a member of an allowed group" do
non_assign_allowed_user = Fabricate(:user)
expect(User.assign_allowed).not_to include(non_assign_allowed_user)
end
it 'retrieves the user if is an admin' do
admin = Fabricate(:admin)
expect(User.assign_allowed).to include(admin)
end
it 'retrieves the user if is an moderator' do
moderator = Fabricate(:moderator)
expect(User.assign_allowed).to include(moderator)
end
end
describe '#can_assign?' do
it 'allows member of allowed groups to assign' do
user = Fabricate.build(:user)
group.add(user)
expect(user.can_assign?).to eq true
end
it "doesn't allow non allowed users to assign" do
user = Fabricate.build(:user)
expect(user.can_assign?).to eq false
end
it 'allows staff members to assign' do
admin = Fabricate.build(:admin)
expect(admin.can_assign?).to eq true
end
end
end