mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-03-26 10:45:04 -04:00
@@ -1,8 +1,9 @@
|
||||
FactoryGirl.define do
|
||||
sequence(:email) { |n| "member#{n}@example.com" }
|
||||
sequence(:login_name) { |n| "member#{n}" }
|
||||
|
||||
factory :member, aliases: [:author, :owner] do
|
||||
login_name 'member1'
|
||||
login_name { generate(:login_name) }
|
||||
password 'password1'
|
||||
email { generate(:email) }
|
||||
tos_agreement true
|
||||
|
||||
@@ -7,7 +7,7 @@ describe Garden do
|
||||
end
|
||||
|
||||
it "should have a slug" do
|
||||
@garden.slug.should == "member1-springfield-community-garden"
|
||||
@garden.slug.should match(/member\d+-springfield-community-garden/)
|
||||
end
|
||||
|
||||
it "should have a description" do
|
||||
|
||||
@@ -15,13 +15,13 @@ describe 'member' do
|
||||
@member.save
|
||||
@member2 = Member.find(@member.id)
|
||||
@member2.should be_an_instance_of Member
|
||||
@member2.login_name.should == "member1"
|
||||
@member2.login_name.should match(/member\d+/)
|
||||
@member2.encrypted_password.should_not be_nil
|
||||
end
|
||||
|
||||
it 'should have a friendly slug' do
|
||||
@member.save
|
||||
@member.slug.should == "member1"
|
||||
@member.slug.should match(/member\d+/)
|
||||
end
|
||||
|
||||
it 'should have a default garden' do
|
||||
@@ -35,8 +35,9 @@ describe 'member' do
|
||||
end
|
||||
|
||||
it 'should stringify as the login_name' do
|
||||
@member.to_s.should == 'member1'
|
||||
"#{@member}".should == 'member1'
|
||||
@member.save
|
||||
@member.to_s.should match(/member\d+/)
|
||||
"#{@member}".should match(/member\d+/)
|
||||
end
|
||||
|
||||
it 'should be able to fetch posts' do
|
||||
@@ -67,4 +68,13 @@ describe 'member' do
|
||||
end
|
||||
end
|
||||
|
||||
context 'same :login_name' do
|
||||
it "should not allow two members with the same login_name" do
|
||||
FactoryGirl.create(:member, :login_name => "login-name")
|
||||
member = FactoryGirl.build(:member, :login_name => "login-name")
|
||||
member.should_not be_valid
|
||||
member.errors[:login_name].should include("has already been taken")
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -12,15 +12,15 @@ describe Planting do
|
||||
|
||||
it "generates an owner" do
|
||||
@planting.owner.should be_an_instance_of Member
|
||||
@planting.owner.login_name.should match /^member1$/
|
||||
@planting.owner.login_name.should match /^member\d+$/
|
||||
end
|
||||
|
||||
it "generates a location" do
|
||||
@planting.location.should match /^member1's Springfield Community Garden$/
|
||||
@planting.location.should match /^member\d+'s Springfield Community Garden$/
|
||||
end
|
||||
|
||||
it "should have a slug" do
|
||||
@planting.slug.should == "member1-springfield-community-garden-tomato"
|
||||
@planting.slug.should match /^member\d+-springfield-community-garden-tomato$/
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -40,7 +40,7 @@ describe "crops/show" do
|
||||
|
||||
it "links to people who are growing this crop" do
|
||||
render
|
||||
rendered.should contain "member1"
|
||||
rendered.should contain /member\d+/
|
||||
rendered.should contain "Springfield Community Garden"
|
||||
end
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ describe 'layouts/application.html.haml', :type => "view" do
|
||||
end
|
||||
|
||||
it 'should show login name' do
|
||||
rendered.should contain 'member1'
|
||||
rendered.should contain /member\d+/
|
||||
end
|
||||
|
||||
it 'should have a "Post" link' do
|
||||
|
||||
@@ -14,8 +14,8 @@ describe "members/index" do
|
||||
end
|
||||
|
||||
it "does not truncate short names" do
|
||||
rendered.should contain "member1"
|
||||
rendered.should_not contain "member1..."
|
||||
rendered.should contain /member\d+/
|
||||
rendered.should_not contain /member\d+\.\.\./
|
||||
end
|
||||
|
||||
it "counts the number of members" do
|
||||
|
||||
@@ -11,7 +11,7 @@ describe 'members/show.rss.builder', :type => "view" do
|
||||
end
|
||||
|
||||
it 'shows RSS feed title' do
|
||||
rendered.should contain "member1's recent posts"
|
||||
rendered.should contain /member\d+'s recent posts/
|
||||
end
|
||||
|
||||
it 'shows content of posts' do
|
||||
|
||||
@@ -25,7 +25,7 @@ describe "plantings/index" do
|
||||
it "renders a list of plantings" do
|
||||
rendered.should contain 'Tomato'
|
||||
rendered.should contain 'Maize'
|
||||
rendered.should contain "member1's Springfield Community Garden"
|
||||
rendered.should contain /member\d+'s Springfield Community Garden/
|
||||
end
|
||||
|
||||
it "shows descriptions where they exist" do
|
||||
|
||||
@@ -11,7 +11,7 @@ describe "posts/show" do
|
||||
FactoryGirl.create(:post, :author => @author))
|
||||
render
|
||||
# show the name of the member who posted the post
|
||||
rendered.should match(/member1/)
|
||||
rendered.should match(/member\d+/)
|
||||
# Subject goes in title
|
||||
rendered.should match(/This is some text./)
|
||||
# shouldn't show the subject on a single post page
|
||||
|
||||
Reference in New Issue
Block a user