#70: updated Api::V1::MaintainersController, added specs

This commit is contained in:
Vokhmin Alexey V 2013-06-17 23:14:20 +04:00
parent f052d7a8f2
commit eed99c4599
2 changed files with 42 additions and 13 deletions

View File

@ -5,7 +5,7 @@ class Api::V1::MaintainersController < Api::V1::BaseController
def index
@maintainers = BuildList::Package.includes(:project)
.actual.by_platform(@platform)
.like_name(params[:filter].try(:[], :package_name))
.like_name(params[:package_name])
.paginate(paginate_params)
end
end

View File

@ -1,22 +1,48 @@
require 'spec_helper'
shared_examples_for 'api maintainers user with reader rights' do
it 'should be able to perform index action' do
get :index, :platform_id => package.platform_id, :format => :json
should render_template(:index)
end
it 'loads all of the maintainers into @maintainers' do
get :index, :platform_id => package.platform_id, :format => :json
assigns(:maintainers).should have(2).items
assigns(:maintainers).should include(package, package2)
end
it 'loads all of the maintainers into @maintainers when search by name' do
get :index, :platform_id => package.platform_id, :package_name => 'package1', :format => :json
assigns(:maintainers).should have(1).item
assigns(:maintainers).should include(package)
end
end
describe Api::V1::MaintainersController do
before do
stub_symlink_methods
FactoryGirl.create(:build_list_package, :platform => package.platform)
end
let(:package) { FactoryGirl.create(:build_list_package, :name => 'package1', :actual => true) }
let!(:package2) { FactoryGirl.create(:build_list_package, :platform => package.platform, :actual => true) }
let(:package) { FactoryGirl.create(:build_list_package) }
context 'for guest' do
it "should be able to perform index action", :anonymous_access => true do
get :index, :platform_id => package.platform_id, :format => :json
should render_template(:index)
if APP_CONFIG['anonymous_access']
it_should_behave_like 'api maintainers user with reader rights'
else
it 'should not be able to perform index action', :anonymous_access => false do
get :index, :platform_id => package.platform_id, :format => :json
response.status.should == 401
end
end
# it 'should be able to perform index action', :anonymous_access => true do
# get :index, :platform_id => package.platform_id, :format => :json
# should render_template(:index)
# end
it 'should be able to perform get_id action', :anonymous_access => false do
get :index, :platform_id => package.platform_id, :format => :json
response.status.should == 401
end
end
context 'for simple user' do
@ -24,9 +50,12 @@ describe Api::V1::MaintainersController do
http_login(FactoryGirl.create(:user))
end
it "should be able to perform index action" do
get :index, :platform_id => package.platform_id, :format => :json
should render_template(:index)
end
it_should_behave_like 'api maintainers user with reader rights'
# it 'should be able to perform index action' do
# get :index, :platform_id => package.platform_id, :format => :json
# should render_template(:index)
# end
# it ''
end
end