mirror of
https://github.com/ENSL/ensl.org.git
synced 2024-12-27 04:51:14 +00:00
93 lines
2.7 KiB
Ruby
93 lines
2.7 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Api::V1::UsersController do
|
|
before do
|
|
request.accept = 'application/json'
|
|
end
|
|
|
|
describe '#show' do
|
|
before(:each) do
|
|
@user = create :user, :chris
|
|
end
|
|
|
|
it 'returns user data' do
|
|
get :show, id: @user.id
|
|
|
|
expect(response).to be_success
|
|
expect(json['id']).to eq(@user.id)
|
|
expect(json['username']).to eq(@user.username)
|
|
expect(json['country']).to eq(@user.country)
|
|
expect(json['time_zone']).to eq(@user.time_zone)
|
|
expect(json['admin']).to eq(@user.admin?)
|
|
expect(json).to have_key("steam")
|
|
expect(json['steam']).to have_key("url")
|
|
expect(json['steam']).to have_key("nickname")
|
|
expect(json['bans']['mute']).to eq(false)
|
|
expect(json['bans']['gather']).to eq(false)
|
|
expect(json['bans']['site']).to eq(false)
|
|
expect(json['team']).to be_nil
|
|
end
|
|
|
|
it 'returns 404 if user does not exist' do
|
|
expect {
|
|
get :show, id: -1
|
|
}.to raise_error(ActionController::RoutingError)
|
|
end
|
|
|
|
it 'returns correct ban if user muted' do
|
|
create :ban, :mute, user: @user
|
|
get :show, id: @user.id
|
|
expect(response).to be_success
|
|
expect(json['bans']['mute']).to eq(true)
|
|
end
|
|
it 'returns correct ban if user gather banned' do
|
|
create :ban, :gather, user: @user
|
|
get :show, id: @user.id
|
|
expect(response).to be_success
|
|
expect(json['bans']['gather']).to eq(true)
|
|
end
|
|
it 'returns correct ban if user site banned' do
|
|
create :ban, :site, user: @user
|
|
get :show, id: @user.id
|
|
expect(response).to be_success
|
|
expect(json['bans']['site']).to eq(true)
|
|
end
|
|
it 'returns team information' do
|
|
@user.destroy
|
|
@user_with_team = create :user_with_team, :chris
|
|
get :show, id: @user_with_team.id
|
|
expect(response).to be_success
|
|
expect(json['team']['id']).to eq(@user_with_team.team.id)
|
|
expect(json['team']['name']).to eq(@user_with_team.team.name)
|
|
end
|
|
end
|
|
|
|
describe '#index' do
|
|
before do
|
|
5.times { create(:user_with_team) }
|
|
end
|
|
|
|
it 'returns all users and associated teams' do
|
|
users = User.all
|
|
|
|
get :index
|
|
|
|
expect(response).to be_success
|
|
expect(json["users"].size).to eq(users.size)
|
|
end
|
|
|
|
it 'returns the excpected JSON keys' do
|
|
get :index
|
|
|
|
user_json = json["users"].first
|
|
nested_team_json = user_json["team"]
|
|
|
|
expect(user_json).to have_key("username")
|
|
expect(user_json).to have_key("steamid")
|
|
expect(user_json).to have_key("team")
|
|
expect(nested_team_json).to have_key("name")
|
|
expect(nested_team_json).to have_key("tag")
|
|
expect(nested_team_json).to have_key("logo")
|
|
end
|
|
end
|
|
end
|