sorting gardens alphabetically, so behaviour is clearer

This commit is contained in:
Skud
2013-01-28 18:19:59 +11:00
parent c5547041e0
commit 6113be1e69
5 changed files with 31 additions and 8 deletions

View File

@@ -7,6 +7,8 @@ class Garden < ActiveRecord::Base
has_many :plantings, :order => 'created_at DESC'
has_many :crops, :through => :plantings
default_scope order("lower(name) asc")
def garden_slug
"#{owner.login_name}-#{name}".downcase.gsub(' ', '-')
end

View File

@@ -3,5 +3,15 @@ FactoryGirl.define do
name 'Springfield Community Garden'
description "This is a **totally** cool garden"
owner
# the following are used for testing alphabetical ordering
factory :garden_a do
name 'A garden starting with A'
end
factory :garden_z do
name 'Zzzz this garden makes me sleepy'
end
end
end

View File

@@ -59,4 +59,12 @@ describe Garden do
end
end
context 'ordering' do
it "should be sorted alphabetically" do
z = FactoryGirl.create(:garden_z)
a = FactoryGirl.create(:garden_a)
Garden.first.should == a
end
end
end

View File

@@ -17,9 +17,8 @@ describe "plantings/edit" do
@maize = FactoryGirl.create(:maize)
# and likewise for gardens
@garden = FactoryGirl.create(:garden, :owner => @right_member)
@garden2 = FactoryGirl.create(:garden, :owner => @right_member,
:name => "An alphabetically earlier garden")
@garden = FactoryGirl.create(:garden_z, :owner => @right_member)
@garden2 = FactoryGirl.create(:garden_a, :owner => @right_member)
@planting = assign(:planting,
FactoryGirl.create(:planting, :garden => @garden, :crop => @tomato)

View File

@@ -5,12 +5,15 @@ describe "plantings/new" do
@member = FactoryGirl.create(:member)
# create gardens and crops to populate dropdowns
@garden1 = FactoryGirl.create(:garden, :owner => @member, :name => 'Garden1')
@garden2 = FactoryGirl.create(:garden, :owner => @member, :name => 'Garden2')
@garden_a = FactoryGirl.create(:garden, :owner => @member)
@garden_z = FactoryGirl.create(:garden, :owner => @member)
@crop1 = FactoryGirl.create(:tomato)
@crop2 = FactoryGirl.create(:maize)
assign(:planting, FactoryGirl.create(:planting, :garden => @garden1))
assign(:planting, FactoryGirl.create(:planting,
:garden => @garden_a,
:crop => @crop2
))
end
@@ -24,8 +27,9 @@ describe "plantings/new" do
context "logged in" do
before(:each) do
sign_in @member
assign(:planting, Planting.new())
assign(:crop, @crop2)
assign(:garden, @garden2)
assign(:garden, @garden_z)
render
end
@@ -45,7 +49,7 @@ describe "plantings/new" do
it "selects a garden given in a param" do
assert_select "select#planting_garden_id",
:html => /option value="#{@garden2.id}" selected="selected"/
:html => /option value="#{@garden_z.id}" selected="selected"/
end
end
end