spec/requests/main_spec.rb in merb-admin-0.4.5 vs spec/requests/main_spec.rb in merb-admin-0.4.6

- old
+ new

@@ -1,19 +1,19 @@ require File.join(File.dirname(__FILE__), '..', 'spec_helper.rb') given "a player exists" do - @player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player 1", :sex => :male, :position => :pitcher) + @player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player 1") end given "a draft exists" do @draft = MerbAdmin::AbstractModel.new("Draft").create(:player_id => rand(99999), :team_id => rand(99999), :date => Date.today, :round => rand(50), :pick => rand(30), :overall => rand(1500)) end given "two players exist" do @players = [] 2.times do |i| - @players << MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player #{i}", :sex => :male, :position => :pitcher) + @players << MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player #{i}") end end given "three teams exist" do @teams = [] @@ -21,16 +21,16 @@ @teams << MerbAdmin::AbstractModel.new("Team").create(:league_id => rand(99999), :division_id => rand(99999), :name => "Team #{i}") end end given "a player exists and a draft exists" do - @player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player 1", :sex => :male, :position => :pitcher) + @player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player 1") @draft = MerbAdmin::AbstractModel.new("Draft").create(:player_id => rand(99999), :team_id => rand(99999), :date => Date.today, :round => rand(50), :pick => rand(30), :overall => rand(1500)) end given "a player exists and three teams exist" do - @player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player 1", :sex => :male, :position => :pitcher) + @player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player 1") @teams = [] 3.times do |i| @teams << MerbAdmin::AbstractModel.new("Team").create(:league_id => rand(99999), :division_id => rand(99999), :name => "Team #{i}") end end @@ -44,11 +44,11 @@ end given "twenty players exist" do @players = [] 20.times do |i| - @players << MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player #{i}", :sex => :male, :position => :pitcher) + @players << MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player #{i}") end end describe "MerbAdmin" do @@ -89,12 +89,12 @@ end end describe "list with query" do before(:each) do - MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :sex => :male, :position => :second) - MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :sex => :male, :position => :pitcher) + MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :position => "second") + MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :position => "pitcher") @response = request(url(:admin_list, :model_name => "player"), :params => {:query => "Jackie Robinson"}) end it "should respond sucessfully" do @response.should be_successful @@ -109,12 +109,12 @@ end end describe "list with sort" do before(:each) do - MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :sex => :male, :position => :second) - MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :sex => :male, :position => :pitcher) + MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :position => "second") + MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :position => "pitcher") @response = request(url(:admin_list, :model_name => "player"), :params => {:sort => "name"}) end it "should respond sucessfully" do @response.should be_successful @@ -125,12 +125,12 @@ end end describe "list with reverse sort" do before(:each) do - MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :sex => :male, :position => :second) - MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :sex => :male, :position => :pitcher) + MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :position => "second") + MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :position => "pitcher") @response = request(url(:admin_list, :model_name => "player"), :params => {:sort => "name", :sort_reverse => "true"}) end it "should respond sucessfully" do @response.should be_successful @@ -139,10 +139,30 @@ it "should be sorted correctly" do @response.body.should contain(/Sandy Koufax.*Jackie Robinson/m) end end + describe "list with boolean filter" do + before(:each) do + MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 18, :name => "Moises Alou", :position => "left", :injured => true) + MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 5, :name => "David Wright", :position => "third", :injured => false) + @response = request(url(:admin_list, :model_name => "player"), :params => {:filter => {:injured => true}}) + end + + it "should respond sucessfully" do + @response.should be_successful + end + + it "should contain a correct result" do + @response.body.should contain("Moises Alou") + end + + it "should not contain an incorrect result" do + @response.body.should_not contain("David Wright") + end + end + describe "list with 2 objects", :given => "two players exist" do before(:each) do MerbAdmin[:paginate] = true MerbAdmin[:per_page] = 1 @response = request(url(:admin_list, :model_name => "player")) @@ -296,11 +316,11 @@ end end describe "create" do before(:each) do - @response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => :second, :sex => :male}}) + @response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => "second"}}) end it "should redirect to list" do @response.should redirect_to(url(:admin_list, :model_name => "player")) end @@ -310,11 +330,11 @@ end end describe "create and edit" do before(:each) do - @response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => :second, :sex => :male}, :_continue => true}) + @response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => "second"}, :_continue => true}) end it "should redirect to edit" do @response.should redirect_to(url(:admin_edit, :model_name => "player", :id => MerbAdmin::AbstractModel.new("Player").first.id)) end @@ -324,11 +344,11 @@ end end describe "create and add another" do before(:each) do - @response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => :second, :sex => :male}, :_add_another => true}) + @response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => "second"}, :_add_another => true}) end it "should redirect to new" do @response.should redirect_to(url(:admin_new, :model_name => "player")) end @@ -338,11 +358,11 @@ end end describe "create with has-one association", :given => "a draft exists" do before(:each) do - @response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => :second, :sex => :male}, :associations => {:draft => @draft.id}}) + @response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => "second"}, :associations => {:draft => @draft.id}}) end it "should create a new object" do MerbAdmin::AbstractModel.new("Player").first.should_not be_nil end @@ -381,11 +401,11 @@ end end describe "update", :given => "a player exists" do before(:each) do - @response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :sex => :male}}) + @response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1}}) end it "should redirect to list" do @response.should redirect_to(url(:admin_list, :model_name => "player")) end @@ -395,11 +415,11 @@ end end describe "update and edit", :given => "a player exists" do before(:each) do - @response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :sex => :male}, :_continue => true}) + @response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1}, :_continue => true}) end it "should redirect to edit" do @response.should redirect_to(url(:admin_edit, :model_name => "player", :id => @player.id)) end @@ -409,11 +429,11 @@ end end describe "update and add another", :given => "a player exists" do before(:each) do - @response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :sex => :male}, :_add_another => true}) + @response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1}, :_add_another => true}) end it "should redirect to new" do @response.should redirect_to(url(:admin_new, :model_name => "player")) end @@ -423,11 +443,11 @@ end end describe "update with has-one association", :given => "a player exists and a draft exists" do before(:each) do - @response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => :second, :sex => :male}, :associations => {:draft => @draft.id}}) + @response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => "second"}, :associations => {:draft => @draft.id}}) end it "should update an object that already exists" do MerbAdmin::AbstractModel.new("Player").first.name.should eql("Jackie Robinson") end @@ -456,10 +476,10 @@ end end describe "update with missing object" do before(:each) do - @response = request(url(:admin_update, :model_name => "player", :id => 1), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :sex => :male}}) + @response = request(url(:admin_update, :model_name => "player", :id => 1), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1}}) end it "should raise NotFound" do @response.status.should == 404 end