mirror of
https://github.com/ENSL/ensl.org.git
synced 2024-12-27 13:01:02 +00:00
79 lines
1.7 KiB
Ruby
79 lines
1.7 KiB
Ruby
# == Schema Information
|
|
#
|
|
# Table name: bans
|
|
#
|
|
# id :integer not null, primary key
|
|
# steamid :string(255)
|
|
# user_id :integer
|
|
# addr :string(255)
|
|
# server_id :integer
|
|
# expiry :datetime
|
|
# reason :string(255)
|
|
# created_at :datetime
|
|
# updated_at :datetime
|
|
# ban_type :integer
|
|
# ip :string(255)
|
|
#
|
|
|
|
require "spec_helper"
|
|
|
|
describe Ban do
|
|
let!(:user) { create :user }
|
|
let(:ban) { Ban.new }
|
|
let!(:server) { create :server }
|
|
|
|
describe "#check_user" do
|
|
it "assigns user by user_name" do
|
|
ban.user_name = user.username
|
|
ban.check_user
|
|
|
|
expect(ban.user).to eq(user)
|
|
end
|
|
|
|
it "assigns user and server if user_name not present" do
|
|
ban.steamid = user.steamid
|
|
ban.addr = server.addr
|
|
ban.check_user
|
|
|
|
expect(ban.user).to eq(user)
|
|
expect(ban.server).to eq(server)
|
|
end
|
|
end
|
|
|
|
describe "Permissions" do
|
|
let!(:user) { create :user }
|
|
let!(:admin) { create :user, :admin }
|
|
let!(:server_user) { create :user }
|
|
let(:ban) { Ban.new }
|
|
|
|
describe "can_create?" do
|
|
it "returns true for admins" do
|
|
expect(ban.can_create? admin).to be_truthy
|
|
end
|
|
|
|
it "returns false for non-admins" do
|
|
expect(ban.can_create? user).to be_falsey
|
|
end
|
|
end
|
|
|
|
describe "can_destroy?" do
|
|
it "returns true for admin" do
|
|
expect(ban.can_destroy? admin).to be_truthy
|
|
end
|
|
|
|
it "returns false for non-admins" do
|
|
expect(ban.can_destroy? user).to be_falsey
|
|
end
|
|
end
|
|
|
|
describe "can_update?" do
|
|
it "returns true for admin" do
|
|
expect(ban.can_update? admin).to be_truthy
|
|
end
|
|
|
|
it "returns false for non-admins" do
|
|
expect(ban.can_update? user).to be_falsey
|
|
end
|
|
end
|
|
end
|
|
end
|