@@ -699,84 +699,84 @@ def hello
699699 end
700700 end
701701
702- # context "routes" do
703- # describe "empty api structure" do
704- # it "returns an empty array of routes" do
705- # subject.routes.should == []
706- # end
707- # end
708- # describe "single method api structure" do
709- # before(:each) do
710- # subject.get :ping do
711- # 'pong'
712- # end
713- # end
714- # it "returns one route" do
715- # subject.routes.size.should == 1
716- # route = subject.routes[0]
717- # route.route_version.should be_nil
718- # route.route_path.should == "/ping(.:format)"
719- # route.route_method.should == "GET"
720- # end
721- # end
722- # describe "api structure with two versions and a namespace" do
723- # class TwitterAPI < Grape::API
724- # # version v1
725- # version 'v1', :using => :path
726- # get "version" do
727- # api.version
728- # end
729- # # version v2
730- # version 'v2', :using => :path
731- # prefix 'p'
732- # namespace "n1" do
733- # namespace "n2" do
734- # get "version" do
735- # api.version
736- # end
737- # end
738- # end
739- # end
740- # it "should return versions" do
741- # TwitterAPI::versions.should == [ 'v1', 'v2' ]
742- # end
743- # it "should set route paths" do
744- # TwitterAPI::routes.size.should >= 2
745- # TwitterAPI::routes[0].route_path.should == "/:version/version(.:format)"
746- # TwitterAPI::routes[1].route_path.should == "/p/:version/n1/n2/version(.:format)"
747- # end
748- # it "should set route versions" do
749- # TwitterAPI::routes[0].route_version.should == 'v1'
750- # TwitterAPI::routes[1].route_version.should == 'v2'
751- # end
752- # it "should set a nested namespace" do
753- # TwitterAPI::routes[1].route_namespace.should == "/n1/n2"
754- # end
755- # it "should set prefix" do
756- # TwitterAPI::routes[1].route_prefix.should == 'p'
757- # end
758- # end
759- # describe "api structure with additional parameters" do
760- # before(:each) do
761- # subject.get 'split/:string', { :params => [ "token" ], :optional_params => [ "limit" ] } do
762- # params[:string].split(params[:token], (params[:limit] || 0).to_i)
763- # end
764- # end
765- # it "should split a string" do
766- # get "/split/a,b,c.json", :token => ','
767- # last_response.body.should == '["a","b","c"]'
768- # end
769- # it "should split a string with limit" do
770- # get "/split/a,b,c.json", :token => ',', :limit => '2'
771- # last_response.body.should == '["a","b,c"]'
772- # end
773- # it "should set route_params" do
774- # subject.routes.size.should == 1
775- # subject.routes[0].route_params.should == [ "string", "token" ]
776- # subject.routes[0].route_optional_params.should == [ "limit" ]
777- # end
778- # end
779- # end
702+ context "routes" do
703+ describe "empty api structure" do
704+ it "returns an empty array of routes" do
705+ subject . routes . should == [ ]
706+ end
707+ end
708+ describe "single method api structure" do
709+ before ( :each ) do
710+ subject . get :ping do
711+ 'pong'
712+ end
713+ end
714+ it "returns one route" do
715+ subject . routes . size . should == 1
716+ route = subject . routes [ 0 ]
717+ route . route_version . should be_nil
718+ route . route_path . should == "/ping(.:format)"
719+ route . route_method . should == "GET"
720+ end
721+ end
722+ describe "api structure with two versions and a namespace" do
723+ class TwitterAPI < Grape ::API
724+ # version v1
725+ version 'v1' , :using => :path
726+ get "version" do
727+ api . version
728+ end
729+ # version v2
730+ version 'v2' , :using => :path
731+ prefix 'p'
732+ namespace "n1" do
733+ namespace "n2" do
734+ get "version" do
735+ api . version
736+ end
737+ end
738+ end
739+ end
740+ it "should return versions" do
741+ TwitterAPI ::versions . should == [ 'v1' , 'v2' ]
742+ end
743+ it "should set route paths" do
744+ TwitterAPI ::routes . size . should >= 2
745+ TwitterAPI ::routes [ 0 ] . route_path . should == "/:version/version(.:format)"
746+ TwitterAPI ::routes [ 1 ] . route_path . should == "/p/:version/n1/n2/version(.:format)"
747+ end
748+ it "should set route versions" do
749+ TwitterAPI ::routes [ 0 ] . route_version . should == 'v1'
750+ TwitterAPI ::routes [ 1 ] . route_version . should == 'v2'
751+ end
752+ it "should set a nested namespace" do
753+ TwitterAPI ::routes [ 1 ] . route_namespace . should == "/n1/n2"
754+ end
755+ it "should set prefix" do
756+ TwitterAPI ::routes [ 1 ] . route_prefix . should == 'p'
757+ end
758+ end
759+ describe "api structure with additional parameters" do
760+ before ( :each ) do
761+ subject . get 'split/:string' , { :params => [ "token" ] , :optional_params => [ "limit" ] } do
762+ params [ :string ] . split ( params [ :token ] , ( params [ :limit ] || 0 ) . to_i )
763+ end
764+ end
765+ it "should split a string" do
766+ get "/split/a,b,c.json" , :token => ','
767+ last_response . body . should == '["a","b","c"]'
768+ end
769+ it "should split a string with limit" do
770+ get "/split/a,b,c.json" , :token => ',' , :limit => '2'
771+ last_response . body . should == '["a","b,c"]'
772+ end
773+ it "should set route_params" do
774+ subject . routes . size . should == 1
775+ subject . routes [ 0 ] . route_params . should == [ "string" , "token" ]
776+ subject . routes [ 0 ] . route_optional_params . should == [ "limit" ]
777+ end
778+ end
779+ end
780780
781781 describe ".rescue_from klass, block" do
782782 it 'should rescue Exception' do
0 commit comments