From 1f1f4a89a1bb9b568e651dc3b0890ccdd3479073 Mon Sep 17 00:00:00 2001 From: Christopher Blanchard Date: Fri, 22 May 2015 14:16:31 +0100 Subject: [PATCH] Added tests for bans --- spec/models/ban_spec.rb | 73 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 spec/models/ban_spec.rb diff --git a/spec/models/ban_spec.rb b/spec/models/ban_spec.rb new file mode 100644 index 0000000..32bb277 --- /dev/null +++ b/spec/models/ban_spec.rb @@ -0,0 +1,73 @@ +# == 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_true + end + it 'returns false for non-admins' do + expect(ban.can_create? user).to be_false + end + end + + describe 'can_destroy?' do + it 'returns true for admin' do + expect(ban.can_destroy? admin).to be_true + end + it 'returns false for non-admins' do + expect(ban.can_destroy? user).to be_false + end + end + + describe 'can_update?' do + it 'returns true for admin' do + expect(ban.can_update? admin).to be_true + end + it 'returns false for non-admins' do + expect(ban.can_update? user).to be_false + end + end + end +end