cartodb/spec/requests/superadmin/oauth_apps_spec.rb
2020-06-15 10:58:47 +08:00

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