127 lines
3.5 KiB
Ruby
127 lines
3.5 KiB
Ruby
require_relative '../../acceptance_helper'
|
|
|
|
describe Superadmin::OauthAppsController do
|
|
|
|
before(:all) do
|
|
@user = FactoryGirl.create(:carto_user)
|
|
end
|
|
|
|
after(:all) do
|
|
@user.destroy!
|
|
end
|
|
|
|
describe '#create' do
|
|
before(:each) do
|
|
@oauth_app = FactoryGirl.build(:oauth_app, user_id: @user.id)
|
|
@oauth_app_param = {
|
|
oauth_app: @oauth_app.api_attributes
|
|
}
|
|
end
|
|
|
|
after(:each) do
|
|
@oauth_app.destroy!
|
|
end
|
|
|
|
it 'should create an oauth_app' do
|
|
expect {
|
|
post superadmin_oauth_apps_url, @oauth_app_param.to_json, superadmin_headers
|
|
|
|
response.status.should == 201
|
|
}.to change(Carto::OauthApp, :count).by(1)
|
|
end
|
|
|
|
it 'should create an oauth_app with nonexistent user' do
|
|
Cartodb::Central.stubs(:sync_data_with_cartodb_central?).returns(true)
|
|
expect {
|
|
@oauth_app_param[:oauth_app][:user_id] = nil
|
|
post superadmin_oauth_apps_url, @oauth_app_param.to_json, superadmin_headers
|
|
|
|
response.status.should == 201
|
|
}.to change(Carto::OauthApp, :count).by(1)
|
|
Cartodb::Central.unstub(:sync_data_with_cartodb_central?)
|
|
end
|
|
end
|
|
|
|
describe '#update' do
|
|
before(:each) do
|
|
@oauth_app = FactoryGirl.create(:oauth_app, user_id: @user.id)
|
|
@oauth_app.name = 'updated_name'
|
|
@oauth_app_param = {
|
|
oauth_app: @oauth_app.api_attributes
|
|
}
|
|
end
|
|
|
|
after(:each) do
|
|
@oauth_app.destroy!
|
|
end
|
|
|
|
it 'should update an oauth app' do
|
|
expect {
|
|
put superadmin_oauth_app_url(@oauth_app.id),
|
|
@oauth_app_param.to_json,
|
|
superadmin_headers
|
|
|
|
response.status.should == 204
|
|
@oauth_app.reload
|
|
@oauth_app.name.should eq 'updated_name'
|
|
}.to change(Carto::OauthApp, :count).by(0)
|
|
end
|
|
|
|
it 'should update an oauth_app with nonexistent user' do
|
|
Cartodb::Central.stubs(:sync_data_with_cartodb_central?).returns(true)
|
|
expect {
|
|
@oauth_app_param[:oauth_app][:user_id] = nil
|
|
put superadmin_oauth_app_url(@oauth_app.id),
|
|
@oauth_app_param.to_json,
|
|
superadmin_headers
|
|
|
|
response.status.should == 204
|
|
@oauth_app.reload
|
|
@oauth_app.name.should eq 'updated_name'
|
|
@oauth_app.user_id.should eq nil
|
|
}.to change(Carto::OauthApp, :count).by(0)
|
|
|
|
Cartodb::Central.unstub(:sync_data_with_cartodb_central?)
|
|
end
|
|
|
|
it 'should raise an error if non-existent oauth_app' do
|
|
put_json superadmin_oauth_app_url("non_existent"),
|
|
@oauth_app_param.to_json,
|
|
superadmin_headers do |response|
|
|
|
|
response.status.should == 404
|
|
response.body[:error].should =~ /ERROR. oauth_app not found/
|
|
end
|
|
end
|
|
end
|
|
|
|
describe '#destroy' do
|
|
before(:each) do
|
|
@oauth_app = FactoryGirl.create(:oauth_app, user_id: @user.id)
|
|
end
|
|
|
|
after(:each) do
|
|
@oauth_app.destroy! if @oauth_app
|
|
end
|
|
|
|
it 'should destroy oauth_app' do
|
|
expect {
|
|
delete superadmin_oauth_app_url(@oauth_app.id), nil, superadmin_headers
|
|
response.status.should == 204
|
|
}.to change(Carto::OauthApp, :count).by(-1)
|
|
|
|
expect {
|
|
Carto::OauthApp.find(@oauth_app.id)
|
|
}.to raise_error(ActiveRecord::RecordNotFound)
|
|
end
|
|
|
|
it 'should raise an error if non-existent oauth_app' do
|
|
delete_json superadmin_oauth_app_url("non_existent"), nil, superadmin_headers do |response|
|
|
|
|
response.status.should == 404
|
|
response.body[:error].should =~ /ERROR. oauth_app not found/
|
|
end
|
|
end
|
|
end
|
|
end
|