# == Schema Information # # Table name: servers # # id :integer not null, primary key # name :string(255) # description :string(255) # dns :string(255) # ip :string(255) # port :string(255) # password :string(255) # irc :string(255) # user_id :integer # official :boolean # created_at :datetime # updated_at :datetime # map :string(255) # players :integer # max_players :integer # ping :string(255) # version :integer # domain :integer default(0), not null # reservation :string(255) # recording :string(255) # idle :datetime # default_id :integer # active :boolean default(TRUE), not null # recordable_type :string(255) # recordable_id :integer # category_id :integer # require "spec_helper" describe Server do describe "create" do it "sets category to 45 if domain is NS2" do 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 it "returns properly formatted IP and port number" do 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 "returns server name" do server_name = "Foo" server = create :server, name: server_name expect(server.to_s).to eq(server_name) end end describe "Permissions" do let!(:user) { create :user } 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