Merge pull request #41 from ENSL/task/upgrade-ruby

Task/upgrade ruby
This commit is contained in:
Luke Barratt 2015-08-15 19:35:49 +01:00
commit 4d07d8ddc6
12 changed files with 313 additions and 263 deletions

View file

@ -1,9 +1,9 @@
source 'http://rubygems.org' source 'http://rubygems.org'
ruby '2.1.5' ruby '2.2.2'
gem 'dotenv-rails', '~> 0.10.0' gem 'dotenv-rails', '~> 0.10.0'
gem 'rails', '~> 3.2.19' gem 'rails', '~> 3.2.22'
gem 'mysql2', '~> 0.3.15' gem 'mysql2', '~> 0.3.15'
gem 'dalli', '~> 2.7.0' gem 'dalli', '~> 2.7.0'
gem 'puma', '~> 2.11.1' gem 'puma', '~> 2.11.1'
@ -23,6 +23,7 @@ gem 'country_code_select', '~> 1.0.1'
gem 'active_link_to', '~> 1.0.2' gem 'active_link_to', '~> 1.0.2'
gem 'rmagick', '~> 2.13.4', require: false gem 'rmagick', '~> 2.13.4', require: false
gem 'steam-condenser', github: 'koraktor/steam-condenser-ruby' gem 'steam-condenser', github: 'koraktor/steam-condenser-ruby'
gem 'test-unit', '~> 3.1.3'
# Please install nodejs locally. # Please install nodejs locally.
gem 'therubyracer', '~> 0.12.1' if RUBY_PLATFORM == 'x86_64-linux' gem 'therubyracer', '~> 0.12.1' if RUBY_PLATFORM == 'x86_64-linux'
@ -59,8 +60,8 @@ group :test do
gem 'simplecov', '~> 0.7.1', require: false gem 'simplecov', '~> 0.7.1', require: false
gem 'codeclimate-test-reporter', '~> 0.3.0', require: nil gem 'codeclimate-test-reporter', '~> 0.3.0', require: nil
gem 'database_cleaner', '~> 1.2.0' gem 'database_cleaner', '~> 1.2.0'
gem 'rspec-rails', '~> 2.14.1' gem 'rspec-rails', '~> 3.3.3'
gem 'capybara', '~> 2.2.1' gem 'capybara', '~> 2.4.4'
gem 'poltergeist', '~> 1.6.0' gem 'poltergeist', '~> 1.6.0'
gem 'selenium-webdriver', '~> 2.41.0' gem 'selenium-webdriver', '~> 2.41.0'
gem 'factory_girl_rails', '~> 4.4.1' gem 'factory_girl_rails', '~> 4.4.1'

View file

@ -9,12 +9,12 @@ GIT
GEM GEM
remote: http://rubygems.org/ remote: http://rubygems.org/
specs: specs:
actionmailer (3.2.19) actionmailer (3.2.22)
actionpack (= 3.2.19) actionpack (= 3.2.22)
mail (~> 2.5.4) mail (~> 2.5.4)
actionpack (3.2.19) actionpack (3.2.22)
activemodel (= 3.2.19) activemodel (= 3.2.22)
activesupport (= 3.2.19) activesupport (= 3.2.22)
builder (~> 3.0.0) builder (~> 3.0.0)
erubis (~> 2.7.0) erubis (~> 2.7.0)
journey (~> 1.0.4) journey (~> 1.0.4)
@ -24,18 +24,18 @@ GEM
sprockets (~> 2.2.1) sprockets (~> 2.2.1)
active_link_to (1.0.2) active_link_to (1.0.2)
actionpack actionpack
activemodel (3.2.19) activemodel (3.2.22)
activesupport (= 3.2.19) activesupport (= 3.2.22)
builder (~> 3.0.0) builder (~> 3.0.0)
activerecord (3.2.19) activerecord (3.2.22)
activemodel (= 3.2.19) activemodel (= 3.2.22)
activesupport (= 3.2.19) activesupport (= 3.2.22)
arel (~> 3.0.2) arel (~> 3.0.2)
tzinfo (~> 0.3.29) tzinfo (~> 0.3.29)
activeresource (3.2.19) activeresource (3.2.22)
activemodel (= 3.2.19) activemodel (= 3.2.22)
activesupport (= 3.2.19) activesupport (= 3.2.22)
activesupport (3.2.19) activesupport (3.2.22)
i18n (~> 0.6, >= 0.6.4) i18n (~> 0.6, >= 0.6.4)
multi_json (~> 1.0) multi_json (~> 1.0)
annotate (2.6.3) annotate (2.6.3)
@ -69,7 +69,7 @@ GEM
capistrano-rbenv (2.0.2) capistrano-rbenv (2.0.2)
capistrano (~> 3.1) capistrano (~> 3.1)
sshkit (~> 1.3) sshkit (~> 1.3)
capybara (2.2.1) capybara (2.4.4)
mime-types (>= 1.16) mime-types (>= 1.16)
nokogiri (>= 1.3.3) nokogiri (>= 1.3.3)
rack (>= 1.0.0) rack (>= 1.0.0)
@ -122,19 +122,19 @@ GEM
haml (4.0.5) haml (4.0.5)
tilt tilt
hike (1.2.3) hike (1.2.3)
i18n (0.6.11) i18n (0.7.0)
journey (1.0.4) journey (1.0.4)
jquery-rails (2.0.3) jquery-rails (2.0.3)
railties (>= 3.1.0, < 5.0) railties (>= 3.1.0, < 5.0)
thor (~> 0.14) thor (~> 0.14)
json (1.8.1) json (1.8.3)
mail (2.5.4) mail (2.5.4)
mime-types (~> 1.16) mime-types (~> 1.16)
treetop (~> 1.4.8) treetop (~> 1.4.8)
method_source (0.8.2) method_source (0.8.2)
mime-types (1.25.1) mime-types (1.25.1)
mini_portile (0.5.3) mini_portile (0.6.2)
multi_json (1.10.1) multi_json (1.11.2)
multi_xml (0.5.5) multi_xml (0.5.5)
multipart-post (2.0.0) multipart-post (2.0.0)
mysql2 (0.3.15) mysql2 (0.3.15)
@ -145,8 +145,8 @@ GEM
net-ssh (>= 2.6.5) net-ssh (>= 2.6.5)
net-ssh (2.9.0) net-ssh (2.9.0)
newrelic_rpm (3.7.2.195) newrelic_rpm (3.7.2.195)
nokogiri (1.6.1) nokogiri (1.6.6.2)
mini_portile (~> 0.5.0) mini_portile (~> 0.6.0)
oj (2.5.5) oj (2.5.5)
poltergeist (1.6.0) poltergeist (1.6.0)
capybara (~> 2.1) capybara (~> 2.1)
@ -154,6 +154,7 @@ GEM
multi_json (~> 1.0) multi_json (~> 1.0)
websocket-driver (>= 0.2.0) websocket-driver (>= 0.2.0)
polyglot (0.3.5) polyglot (0.3.5)
power_assert (0.2.4)
pry (0.9.12.6) pry (0.9.12.6)
coderay (~> 1.0) coderay (~> 1.0)
method_source (~> 0.8) method_source (~> 0.8)
@ -165,46 +166,51 @@ GEM
rack (>= 1.1, < 2.0) rack (>= 1.1, < 2.0)
quiet_assets (1.0.2) quiet_assets (1.0.2)
railties (>= 3.1, < 5.0) railties (>= 3.1, < 5.0)
rack (1.4.5) rack (1.4.7)
rack-cache (1.2) rack-cache (1.2)
rack (>= 0.4) rack (>= 0.4)
rack-ssl (1.3.4) rack-ssl (1.3.4)
rack rack
rack-test (0.6.2) rack-test (0.6.3)
rack (>= 1.0) rack (>= 1.0)
rails (3.2.19) rails (3.2.22)
actionmailer (= 3.2.19) actionmailer (= 3.2.22)
actionpack (= 3.2.19) actionpack (= 3.2.22)
activerecord (= 3.2.19) activerecord (= 3.2.22)
activeresource (= 3.2.19) activeresource (= 3.2.22)
activesupport (= 3.2.19) activesupport (= 3.2.22)
bundler (~> 1.0) bundler (~> 1.0)
railties (= 3.2.19) railties (= 3.2.22)
rails_autolink (1.1.5) rails_autolink (1.1.5)
rails (> 3.1) rails (> 3.1)
railties (3.2.19) railties (3.2.22)
actionpack (= 3.2.19) actionpack (= 3.2.22)
activesupport (= 3.2.19) activesupport (= 3.2.22)
rack-ssl (~> 1.3.2) rack-ssl (~> 1.3.2)
rake (>= 0.8.7) rake (>= 0.8.7)
rdoc (~> 3.4) rdoc (~> 3.4)
thor (>= 0.14.6, < 2.0) thor (>= 0.14.6, < 2.0)
rake (10.3.2) rake (10.4.2)
rdoc (3.12.2) rdoc (3.12.2)
json (~> 1.4) json (~> 1.4)
rmagick (2.13.4) rmagick (2.13.4)
rspec-core (2.14.8) rspec-core (3.3.2)
rspec-expectations (2.14.5) rspec-support (~> 3.3.0)
diff-lcs (>= 1.1.3, < 2.0) rspec-expectations (3.3.1)
rspec-mocks (2.14.6) diff-lcs (>= 1.2.0, < 2.0)
rspec-rails (2.14.2) rspec-support (~> 3.3.0)
actionpack (>= 3.0) rspec-mocks (3.3.2)
activemodel (>= 3.0) diff-lcs (>= 1.2.0, < 2.0)
activesupport (>= 3.0) rspec-support (~> 3.3.0)
railties (>= 3.0) rspec-rails (3.3.3)
rspec-core (~> 2.14.0) actionpack (>= 3.0, < 4.3)
rspec-expectations (~> 2.14.0) activesupport (>= 3.0, < 4.3)
rspec-mocks (~> 2.14.0) railties (>= 3.0, < 4.3)
rspec-core (~> 3.3.0)
rspec-expectations (~> 3.3.0)
rspec-mocks (~> 3.3.0)
rspec-support (~> 3.3.0)
rspec-support (3.3.0)
rubyzip (1.1.3) rubyzip (1.1.3)
sanitize (2.1.0) sanitize (2.1.0)
nokogiri (>= 1.4.4) nokogiri (>= 1.4.4)
@ -223,7 +229,7 @@ GEM
simplecov-html (~> 0.7.1) simplecov-html (~> 0.7.1)
simplecov-html (0.7.1) simplecov-html (0.7.1)
slop (3.5.0) slop (3.5.0)
sprockets (2.2.2) sprockets (2.2.3)
hike (~> 1.2) hike (~> 1.2)
multi_json (~> 1.0) multi_json (~> 1.0)
rack (~> 1.0) rack (~> 1.0)
@ -234,6 +240,8 @@ GEM
term-ansicolor term-ansicolor
term-ansicolor (1.3.0) term-ansicolor (1.3.0)
tins (~> 1.0) tins (~> 1.0)
test-unit (3.1.3)
power_assert
thor (0.19.1) thor (0.19.1)
tilt (1.4.1) tilt (1.4.1)
timecop (0.7.1) timecop (0.7.1)
@ -243,7 +251,7 @@ GEM
treetop (1.4.15) treetop (1.4.15)
polyglot polyglot
polyglot (>= 0.3.1) polyglot (>= 0.3.1)
tzinfo (0.3.41) tzinfo (0.3.44)
uglifier (2.5.0) uglifier (2.5.0)
execjs (>= 0.3.0) execjs (>= 0.3.0)
json (>= 1.8.0) json (>= 1.8.0)
@ -270,7 +278,7 @@ DEPENDENCIES
capistrano-bundler (~> 1.1.2) capistrano-bundler (~> 1.1.2)
capistrano-rails (~> 1.1) capistrano-rails (~> 1.1)
capistrano-rbenv (~> 2.0.2) capistrano-rbenv (~> 2.0.2)
capybara (~> 2.2.1) capybara (~> 2.4.4)
carrierwave (~> 0.10.0) carrierwave (~> 0.10.0)
codeclimate-test-reporter (~> 0.3.0) codeclimate-test-reporter (~> 0.3.0)
coffee-rails (~> 3.2.2) coffee-rails (~> 3.2.2)
@ -294,10 +302,10 @@ DEPENDENCIES
pry-byebug (~> 1.3.2) pry-byebug (~> 1.3.2)
puma (~> 2.11.1) puma (~> 2.11.1)
quiet_assets (~> 1.0.2) quiet_assets (~> 1.0.2)
rails (~> 3.2.19) rails (~> 3.2.22)
rails_autolink (~> 1.1.5) rails_autolink (~> 1.1.5)
rmagick (~> 2.13.4) rmagick (~> 2.13.4)
rspec-rails (~> 2.14.1) rspec-rails (~> 3.3.3)
sanitize (~> 2.1.0) sanitize (~> 2.1.0)
sass (~> 3.3.4) sass (~> 3.3.4)
sass-rails (~> 3.2.6) sass-rails (~> 3.2.6)
@ -305,7 +313,11 @@ DEPENDENCIES
simplecov (~> 0.7.1) simplecov (~> 0.7.1)
sprockets (~> 2.2.1) sprockets (~> 2.2.1)
steam-condenser! steam-condenser!
test-unit (~> 3.1.3)
timecop (~> 0.7.1) timecop (~> 0.7.1)
tinymce-rails (~> 3.5.9) tinymce-rails (~> 3.5.9)
uglifier (~> 2.5.0) uglifier (~> 2.5.0)
will_paginate (~> 3.0.5) will_paginate (~> 3.0.5)
BUNDLED WITH
1.10.5

View file

@ -9,7 +9,7 @@ set :repo_url, 'https://github.com/ENSL/ensl.org.git'
set :keep_releases, 10 set :keep_releases, 10
set :rbenv_type, :user set :rbenv_type, :user
set :rbenv_ruby, '2.1.5' set :rbenv_ruby, '2.2.2'
set :bundle_flags, '--quiet' set :bundle_flags, '--quiet'
set :dotenv_role, [:app, :web] set :dotenv_role, [:app, :web]
@ -18,10 +18,10 @@ set :puma_pid, -> { File.join(shared_path, 'tmp', 'pids', 'puma.pid') }
set :writable_dirs, %w{public tmp} set :writable_dirs, %w{public tmp}
set :linked_files, %w{.env} set :linked_files, %w{.env}
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle
public/system public/local public/uploads public/files} public/system public/local public/uploads public/files}
set :normalize_asset_timestamps, %{public/images set :normalize_asset_timestamps, %{public/images
public/javascripts public/javascripts
public/stylesheets} public/stylesheets}
@ -89,4 +89,4 @@ namespace :puma do
def valid_pid? def valid_pid?
test "[ -f #{fetch(:puma_pid)} ]" and test "kill -0 $( cat #{fetch(:puma_pid)} )" test "[ -f #{fetch(:puma_pid)} ]" and test "kill -0 $( cat #{fetch(:puma_pid)} )"
end end
end end

View file

@ -3,7 +3,7 @@ require 'spec_helper'
describe Api::V1::MapsController do describe Api::V1::MapsController do
before do before do
request.accept = 'application/json' request.accept = 'application/json'
end end
describe '#index' do describe '#index' do
let!(:map) { create :map } let!(:map) { create :map }
@ -16,4 +16,4 @@ describe Api::V1::MapsController do
expect(json_map['id']).to eq(map.id) expect(json_map['id']).to eq(map.id)
end end
end end
end end

View file

@ -3,7 +3,7 @@ require 'spec_helper'
describe Api::V1::ServersController do describe Api::V1::ServersController do
before do before do
request.accept = 'application/json' request.accept = 'application/json'
end end
describe '#index' do describe '#index' do
let!(:server) { create :server, :active } let!(:server) { create :server, :active }
@ -17,4 +17,4 @@ describe Api::V1::ServersController do
expect(json_server['id']).to eq(server.id) expect(json_server['id']).to eq(server.id)
end end
end end
end end

View file

@ -40,18 +40,21 @@ describe Api::V1::UsersController do
expect(response).to be_success expect(response).to be_success
expect(json['bans']['mute']).to eq(true) expect(json['bans']['mute']).to eq(true)
end end
it 'returns correct ban if user gather banned' do it 'returns correct ban if user gather banned' do
create :ban, :gather, user: @user create :ban, :gather, user: @user
get :show, id: @user.id get :show, id: @user.id
expect(response).to be_success expect(response).to be_success
expect(json['bans']['gather']).to eq(true) expect(json['bans']['gather']).to eq(true)
end end
it 'returns correct ban if user site banned' do it 'returns correct ban if user site banned' do
create :ban, :site, user: @user create :ban, :site, user: @user
get :show, id: @user.id get :show, id: @user.id
expect(response).to be_success expect(response).to be_success
expect(json['bans']['site']).to eq(true) expect(json['bans']['site']).to eq(true)
end end
it 'returns team information' do it 'returns team information' do
@user.destroy @user.destroy
@user_with_team = create :user_with_team, :chris @user_with_team = create :user_with_team, :chris
@ -81,7 +84,7 @@ describe Api::V1::UsersController do
user_json = json["users"].first user_json = json["users"].first
nested_team_json = user_json["team"] nested_team_json = user_json["team"]
expect(user_json).to have_key("username") expect(user_json).to have_key("username")
expect(user_json).to have_key("steamid") expect(user_json).to have_key("steamid")
expect(user_json).to have_key("team") expect(user_json).to have_key("team")

View file

@ -15,59 +15,65 @@
# ip :string(255) # ip :string(255)
# #
require 'spec_helper' require "spec_helper"
describe Ban do describe Ban do
let!(:user) { create :user } let!(:user) { create :user }
let(:ban) { Ban.new } let(:ban) { Ban.new }
let!(:server) { create :server } let!(:server) { create :server }
describe '#check_user' do describe "#check_user" do
it "assigns user by user_name" do it "assigns user by user_name" do
ban.user_name = user.username ban.user_name = user.username
ban.check_user 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 expect(ban.user).to eq(user)
it 'returns true for admins' do end
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 "assigns user and server if user_name not present" do
it 'returns true for admin' do ban.steamid = user.steamid
expect(ban.can_destroy? admin).to be_true ban.addr = server.addr
end ban.check_user
it 'returns false for non-admins' do
expect(ban.can_destroy? user).to be_false
end
end
describe 'can_update?' do expect(ban.user).to eq(user)
it 'returns true for admin' do expect(ban.server).to eq(server)
expect(ban.can_update? admin).to be_true end
end end
it 'returns false for non-admins' do
expect(ban.can_update? user).to be_false describe "Permissions" do
end let!(:user) { create :user }
end let!(:admin) { create :user, :admin }
end 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 end

View file

@ -15,46 +15,53 @@
# text_parsed :text # text_parsed :text
# #
require 'spec_helper' require "spec_helper"
describe 'User' do describe "User" do
describe 'Permissions' do describe "Permissions" do
let!(:user) { create :user } let!(:user) { create :user }
let!(:admin) { create :user, :admin } let!(:admin) { create :user, :admin }
let(:issue) { Issue.new } let(:issue) { Issue.new }
describe 'can_show?' do describe "can_show?" do
it 'returns true for author' do it "returns true for author" do
issue.author = user issue.author = user
expect(issue.can_show? user).to be_true expect(issue.can_show? user).to be_truthy
end end
it 'returns true for admin' do
expect(issue.can_show? admin).to be_true it "returns true for admin" do
end expect(issue.can_show? admin).to be_truthy
it 'returns false if neither admin nor author' do end
expect(issue.can_show? user).to be_false
end it "returns false if neither admin nor author" do
end expect(issue.can_show? user).to be_falsey
describe 'can_create?' do end
it "returns true" do end
expect(issue.can_create? nil).to be_true
end describe "can_create?" do
end it "returns true" do
describe 'can_update?' do expect(issue.can_create? nil).to be_truthy
it 'returns true for admin' do end
expect(issue.can_update? admin).to be_true end
end
it 'returns false for non-admin' do describe "can_update?" do
expect(issue.can_update? user).to be_false it "returns true for admin" do
end expect(issue.can_update? admin).to be_truthy
end end
describe 'can_destroy?' do
it 'returns true for admin' do it "returns false for non-admin" do
expect(issue.can_destroy? admin).to be_true expect(issue.can_update? user).to be_falsey
end end
it 'returns false for non-admin' do end
expect(issue.can_destroy? user).to be_false
end describe "can_destroy?" do
end it "returns true for admin" do
end expect(issue.can_destroy? admin).to be_truthy
end end
it "returns false for non-admin" do
expect(issue.can_destroy? user).to be_falsey
end
end
end
end

View file

@ -14,44 +14,50 @@
# text_parsed :text # text_parsed :text
# #
require 'spec_helper' require "spec_helper"
describe Message do describe Message do
let!(:user) { create :user } let!(:user) { create :user }
describe 'create' do describe "create" do
let(:message) { build :message } let(:message) { build :message }
it 'creates a new message' do
expect(message.valid?).to be_true
expect do
message.save!
end.to change(Message, :count).by(1)
end
end
describe 'Permissions' do it "creates a new message" do
let(:message) { Message.new } expect(message.valid?).to eq(true)
describe 'can_create?' do expect do
it 'returns true for user' do message.save!
expect(message.can_create?(user)).to be_true end.to change(Message, :count).by(1)
end end
it 'returns false if user is banned' do end
create :ban, :mute, user: user
expect(message.can_create?(user)).to be_false
end
end
describe 'can_show?' do describe "Permissions" do
let!(:message) { create :message } let(:message) { Message.new }
it 'returns true if sender' do
expect(message.can_show?(message.sender)).to be_true describe "can_create?" do
end it "returns true for user" do
it 'returns true if receiver' do expect(message.can_create?(user)).to be_truthy
expect(message.can_show?(message.recipient)).to be_true end
end
it 'returns false if neither sender nor receiver' do it "returns false if user is banned" do
expect(message.can_show?(user)).to be_false create :ban, :mute, user: user
end expect(message.can_create?(user)).to be_falsey
end end
end end
end
describe "can_show?" do
let!(:message) { create :message }
it "returns true if sender" do
expect(message.can_show?(message.sender)).to be_truthy
end
it "returns true if receiver" do
expect(message.can_show?(message.recipient)).to be_truthy
end
it "returns false if neither sender nor receiver" do
expect(message.can_show?(user)).to be_falsey
end
end
end
end

View file

@ -30,68 +30,76 @@
# category_id :integer # category_id :integer
# #
require 'spec_helper' require "spec_helper"
describe Server do describe Server do
describe 'create' do describe "create" do
it 'sets category to 45 if domain is NS2' do it "sets category to 45 if domain is NS2" do
server = create :server, domain: Server::DOMAIN_NS2 server = create :server, domain: Server::DOMAIN_NS2
expect(server.category_id).to eq(45)
end
it 'sets category to 44 if domain is not NS2' do
server = create :server, domain: Server::DOMAIN_HLDS
expect(server.category_id).to eq(44)
end
end
describe 'addr' do expect(server.category_id).to eq(45)
it 'returns properly formatted IP and port number' do end
ip = '1.1.1.1'
port = '8000'
server = create :server, ip: ip, port: port
expect(server.addr).to eq('1.1.1.1:8000')
end
end
describe 'to_s' do it "sets category to 44 if domain is not NS2" do
it 'returns server name' do server = create :server, domain: Server::DOMAIN_HLDS
server_name = "Foo"
server = create :server, name: server_name
expect(server.to_s).to eq(server_name)
end
end
describe 'Permissions' do expect(server.category_id).to eq(44)
let!(:user) { create :user } end
let!(:admin) { create :user, :admin } end
let!(:server_user) {create :user }
let!(:server) { create :server, user: server_user }
describe 'can_create?' do describe "addr" do
it 'returns true for non-admins' do it "returns properly formatted IP and port number" do
expect(server.can_create? user).to be_true ip = "1.1.1.1"
end port = "8000"
end server = create :server, ip: ip, port: port
describe 'can_destroy?' do expect(server.addr).to eq("1.1.1.1:8000")
it 'returns true for admin' do end
expect(server.can_destroy? admin).to be_true end
end
it 'returns false for non-admins' do
expect(server.can_destroy? user).to be_false
end
end
describe 'can_update?' do describe "to_s" do
it 'returns true for admin' do it "returns server name" do
expect(server.can_update? admin).to be_true server_name = "Foo"
end server = create :server, name: server_name
it 'returns true if server belongs to user' do
expect(server.can_update? server_user).to be_true expect(server.to_s).to eq(server_name)
end end
it 'returns false for non-admins' do end
expect(server.can_update? user).to be_false
end describe "Permissions" do
end let!(:user) { create :user }
end let!(:admin) { create :user, :admin }
let!(:server_user) { create :user }
let!(:server) { create :server, user: server_user }
describe "can_create?" do
it "returns true for non-admins" do
expect(server.can_create? user).to be_truthy
end
end
describe "can_destroy?" do
it "returns true for admin" do
expect(server.can_destroy? admin).to eq(true)
end
it "returns false for non-admins" do
expect(server.can_destroy? user).to eq(false)
end
end
describe "can_update?" do
it "returns true for admin" do
expect(server.can_update? admin).to eq(true)
end
it "returns true if server belongs to user" do
expect(server.can_update? server_user).to eq(true)
end
it "returns false for non-admins" do
expect(server.can_update? user).to eq(false)
end
end
end
end end

View file

@ -24,21 +24,27 @@
require 'spec_helper' require 'spec_helper'
describe User do describe User do
let!(:user) { create :user } let!(:user) { create :user }
describe "#banned?" do
it "returns false if user is not banned" do
expect(user.banned?).to be_false
end
it "returns true if user is banned" do describe "#banned?" do
ban = Ban.create! ban_type: Ban::TYPE_SITE, expiry: Time.now + 10.days, user_name: user.username it "returns false if user is not banned" do
expect(user.banned?).to be_true expect(user.banned?).to be_falsey
end end
it "returns true for specific bans" do it "returns true if user is banned" do
ban = Ban.create! ban_type: Ban::TYPE_MUTE, expiry: Time.now + 10.days, user_name: user.username Ban.create!(ban_type: Ban::TYPE_SITE,
expect(user.banned? Ban::TYPE_MUTE).to be_true expiry: Time.now + 10.days,
end user_name: user.username)
end
end expect(user.banned?).to be_truthy
end
it "returns true for specific bans" do
Ban.create!(ban_type: Ban::TYPE_MUTE,
expiry: Time.now + 10.days,
user_name: user.username)
expect(user.banned? Ban::TYPE_MUTE).to be_truthy
end
end
end

View file

@ -10,7 +10,7 @@ require 'rspec/rails'
require 'capybara/rspec' require 'capybara/rspec'
require 'capybara/poltergeist' require 'capybara/poltergeist'
Capybara.default_wait_time = 30 Capybara.default_wait_time = 5
Capybara.register_driver :poltergeist do |app| Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, Capybara::Poltergeist::Driver.new(app,
timeout: 30, timeout: 30,
@ -34,6 +34,7 @@ RSpec.configure do |config|
config.use_transactional_fixtures = false config.use_transactional_fixtures = false
config.color = true config.color = true
config.formatter = :documentation config.formatter = :documentation
config.infer_spec_type_from_file_location!
config.before(:each) do config.before(:each) do
events_list_json = JSON.parse(File.read(Rails.root.join('spec/fixtures/google_calendar.json'))) events_list_json = JSON.parse(File.read(Rails.root.join('spec/fixtures/google_calendar.json')))