75 lines
2.5 KiB
Ruby
75 lines
2.5 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe JamRuby::Connection do
|
|
let(:user) { FactoryGirl.create(:user) }
|
|
let (:music_session) { FactoryGirl.create(:active_music_session, :creator => user) }
|
|
let (:conn) { FactoryGirl.create(:connection,
|
|
:user => user,
|
|
:music_session => music_session,
|
|
:ip_address => "1.1.1.1",
|
|
:client_id => "1") }
|
|
|
|
it 'starts in the correct state' do
|
|
connection = FactoryGirl.create(:connection,
|
|
:user => user,
|
|
:music_session => music_session,
|
|
:ip_address => "1.1.1.1",
|
|
:client_id => "1")
|
|
|
|
connection.idle?.should be_true
|
|
end
|
|
|
|
it 'transitions properly' do
|
|
connection = FactoryGirl.create(:connection,
|
|
:user => user,
|
|
:music_session => music_session,
|
|
:ip_address => "1.1.1.1",
|
|
:client_id => "1")
|
|
|
|
connection.connect!
|
|
connection.connected?.should be_true
|
|
connection.state_message.should == 'Connected'
|
|
|
|
connection.stale!
|
|
connection.stale?.should be_true
|
|
connection.state_message.should == 'Stale'
|
|
|
|
connection.expire!
|
|
connection.destroyed?.should be_true
|
|
end
|
|
|
|
it 'updates user lat/lng' do
|
|
pending 'distance search changes'
|
|
uu = FactoryGirl.create(:user)
|
|
uu.lat.should == nil
|
|
msess = FactoryGirl.create(:active_music_session, :creator => uu)
|
|
geocode = FactoryGirl.create(:geocoder)
|
|
connection = FactoryGirl.create(:connection,
|
|
:user => uu,
|
|
:music_session => msess,
|
|
:ip_address => "1.1.1.1",
|
|
:client_id => "1")
|
|
user.lat.should == geocode.lat
|
|
user.lng.should == geocode.lng
|
|
end
|
|
|
|
describe "audio latency" do
|
|
it "allow update" do
|
|
conn.last_jam_audio_latency = 1
|
|
conn.save!
|
|
end
|
|
|
|
it "prevent negative or 0" do
|
|
conn.last_jam_audio_latency = 0
|
|
conn.save.should be_false
|
|
conn.errors[:last_jam_audio_latency].should == ['must be greater than 0']
|
|
end
|
|
|
|
it "prevent non numerical" do
|
|
conn.last_jam_audio_latency = 'a'
|
|
conn.save.should be_false
|
|
conn.errors[:last_jam_audio_latency].should == ['is not a number']
|
|
end
|
|
end
|
|
end
|