jam-cloud/web/spec/controllers/api_jamblasters_controller_...

210 lines
5.5 KiB
Ruby
Raw Normal View History

require 'spec_helper'
describe ApiJamblastersController do
render_views
2016-02-18 12:12:28 +00:00
let(:user) { FactoryGirl.create(:user) }
let(:jamblaster) { FactoryGirl.create(:jamblaster, user: user) }
before(:each) do
JamblasterUser.delete_all
JamblasterPairingRequest.delete_all
Jamblaster.delete_all
end
2016-02-18 12:12:28 +00:00
describe "can_pair" do
it "works" do
connection1 = FactoryGirl.create(:connection, :user => user, client_id: 'abc1')
2016-02-18 17:22:50 +00:00
get :can_pair, {:format => 'json', jbid: connection1.client_id, user_id: user.id}
2016-02-18 12:12:28 +00:00
response.status.should == 200
end
end
describe "is_allowed" do
before(:each) do
user.jamblasters << jamblaster
user.save!
end
it "works" do
2016-02-18 17:22:50 +00:00
get :is_allowed, {:format => 'json', jbid: jamblaster.client_id, user_id: user.id}
2016-02-18 12:12:28 +00:00
response.status.should == 200
end
end
describe "auth_users" do
before(:each) do
user.jamblasters << jamblaster
user.save!
end
it "works" do
get :auth_users, {:format => 'json', jbid: jamblaster.client_id, serial_no: jamblaster.serial_no}
response.status.should == 200
json = JSON.parse(response.body)
json["pairings"].length.should eq(0)
end
end
describe "get_tokens" do
before(:each) {
controller.current_user = user
}
it "works" do
2016-02-18 12:12:28 +00:00
get :get_tokens, {:format => 'json'}
response.status.should == 200
json = JSON.parse(response.body)
json.length.should eq(0)
# associate Jamblaster
jamblaster = FactoryGirl.create(:jamblaster, user: user)
user.jamblasters << jamblaster
user.save!
2016-02-18 12:12:28 +00:00
get :get_tokens, {:format => 'json'}
response.status.should == 200
json = JSON.parse(response.body)
json.length.should eq(1)
end
end
2016-02-18 12:12:28 +00:00
describe "start_pairing" do
before(:each) do
controller.current_user = user
user.jamblasters << jamblaster
user.save!
end
it "works" do
2016-02-18 17:22:50 +00:00
post :start_pairing, {:format => 'json', jbid: jamblaster.client_id, vtoken: 'vtoken'}
response.status.should == 200
2016-02-18 17:22:50 +00:00
json = JSON.parse(response.body)
request = JamblasterPairingRequest.where(jamblaster_id: jamblaster.id).first
request.should_not be_nil
request.user.should eql(user)
2016-02-18 12:12:28 +00:00
request.vtoken.should eq 'vtoken'
2016-02-18 17:22:50 +00:00
end
it "returns 422 if bogus jamblaster" do
2016-02-18 17:22:50 +00:00
post :start_pairing, {:format => 'json', jbid: 'nada', vtoken: 'vtoken'}
json = JSON.parse(response.body)
response.status.should == 422
json = JSON.parse(response.body)
end
it "returns 422 if restart pairing" do
end
end
describe "login" do
before(:each) do
controller.current_user = user
user.jamblasters << jamblaster
user.save!
end
it "works" do
2016-02-18 17:22:50 +00:00
post :start_pairing, {:format => 'json', jbid: jamblaster.client_id, vtoken: 'vtoken2'}
response.status.should == 200
2016-02-18 17:22:50 +00:00
request = JamblasterPairingRequest.where(jamblaster_client_id: jamblaster.client_id, vtoken: 'vtoken2', user_id: user.id).first
request.should_not be_nil
request.user.should eql(user)
2016-02-18 12:12:28 +00:00
request.vtoken.should eq 'vtoken2'
request.jamblaster_client_id.should eq jamblaster.client_id
2016-02-18 17:22:50 +00:00
post :login, {:format => 'json', jbid: jamblaster.client_id, serial_no: jamblaster.serial_no, user_id: user.id, vtoken: 'vtoken2'}
json = JSON.parse(response.body)
response.status.should == 200
end
end
describe "pair" do
before(:each) do
controller.current_user = user
user.jamblasters << jamblaster
user.save!
end
it "works" do
2016-02-18 17:22:50 +00:00
post :start_pairing, {:format => 'json', jbid: jamblaster.client_id, vtoken: 'vtoken4'}
response.status.should == 200
2016-02-18 17:22:50 +00:00
request = JamblasterPairingRequest.where(jamblaster_client_id: jamblaster.client_id, vtoken: 'vtoken4', user_id: user.id).first
request.should_not be_nil
request.user.should eql(user)
2016-02-18 12:12:28 +00:00
request.vtoken.should eq 'vtoken4'
request.jamblaster_client_id.should eq jamblaster.client_id
2016-02-18 17:22:50 +00:00
post :login, {:format => 'json', jbid: jamblaster.client_id, serial_no: jamblaster.serial_no, user_id: user.id, vtoken: 'vtoken4'}
json = JSON.parse(response.body)
response.status.should == 200
2016-02-18 17:22:50 +00:00
post :pair, {:format => 'json', vtoken: 'vtoken4', user_id: user.id, jbid: jamblaster.client_id, key: 'abc'}
response.status.should == 200
2016-02-18 12:12:28 +00:00
json = JSON.parse(response.body)
json["id"].should eq jamblaster.id
2016-02-18 12:12:28 +00:00
get :get_tokens, {:format => 'json'}
response.status.should == 200
json = JSON.parse(response.body)
2016-02-18 12:12:28 +00:00
puts "JSON #{json}"
json.length.should eq(1)
2016-02-18 12:12:28 +00:00
vtoken = json[0]["pairings"][0]["vtoken"]
vtoken.should eq("vtoken4")
end
end
describe "logged in" do
before(:each) do
controller.current_user = user
end
it "get_tokens" do
2016-02-18 12:12:28 +00:00
get :get_tokens, {:format => 'json'}
response.status.should == 200
end
it "start_pairing" do
2016-02-18 12:12:28 +00:00
post :start_pairing, {:format => 'json'}
response.status.should == 422
end
it "pair" do
2016-02-18 12:12:28 +00:00
post :pair, {:format => 'json'}
response.status.should == 404
end
end
describe "not logged in" do
before(:each) do
controller.current_user = nil
end
it "get_tokens" do
2016-02-18 12:12:28 +00:00
get :get_tokens, {:format => 'json'}
response.status.should == 403
end
it "start_pairing" do
2016-02-18 12:12:28 +00:00
post :start_pairing, {:format => 'json'}
response.status.should == 403
end
it "pair" do
2016-02-18 12:12:28 +00:00
post :pair, {:format => 'json'}
response.status.should == 403
end
end
end