diff --git a/app/models/garden.rb b/app/models/garden.rb index 7f64994cc..6465a474a 100644 --- a/app/models/garden.rb +++ b/app/models/garden.rb @@ -26,7 +26,7 @@ class Garden < ActiveRecord::Base } validates :area, - :numericality => { :only_integer => false }, + :numericality => { :only_integer => false, :greater_than_or_equal_to => 0 }, :allow_nil => true AREA_UNITS_VALUES = { diff --git a/spec/features/gardens_spec.rb b/spec/features/gardens_spec.rb index 1b803a41e..6f9d9af36 100644 --- a/spec/features/gardens_spec.rb +++ b/spec/features/gardens_spec.rb @@ -33,6 +33,15 @@ feature "Planting a crop", :js => true do expect(page).to have_content "New garden" end + scenario "Refuse to create new garden with negative area" do + visit new_garden_path + fill_in "Name", :with => "Negative Garden" + fill_in "Area", :with => -5 + click_button "Save" + expect(page).not_to have_content "Garden was successfully created" + expect(page).to have_content "Area must be greater than or equal to 0" + end + scenario "Edit garden" do visit new_garden_path fill_in "Name", :with => "New garden"