Created
October 4, 2011 19:28
-
-
Save jdkealy/1262545 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'spec_helper' | |
describe Member do | |
it "should authenticate with matching username and password" do | |
user = Factory(:member) | |
Member.find_by_email('foo1@example.com').should == user | |
end | |
describe "references" do | |
before(:each) do | |
@user = Factory(:member) | |
@user_two = Factory(:member, :parent_id=>@user.id) | |
@user_three = Factory(:member, :parent_id=>@user_two.id) | |
@user_four = Factory(:member, :parent_id=>@user_three.id) | |
@user_five = Factory(:member, :parent_id=>@user_four.id) | |
20.times do | |
Factory(:member, :parent_id=>@user.id) | |
end | |
5.times do | |
Factory(:member, :parent_id=>@user_five.id) | |
end | |
@uwtc_pre_pre = Factory(:member) | |
@uwtc_pre = Factory(:member, :parent_id=>@uwtc_pre_pre.id) | |
@uwtc = Factory(:member, :parent_id=>@uwtc_pre.id) | |
@uwtc1 = Factory(:member, :parent_id=>@uwtc.id) | |
@uwtc11 = Factory(:member, :parent_id=> @uwtc1.id) | |
@uwtc111 = Factory(:member, :parent_id=>@uwtc11.id) | |
@uwtc1111 = Factory(:member, :parent_id=>@uwtc111.id) | |
@uwtc2 = Factory(:member, :parent_id=>@uwtc.id) | |
@uwtc22 = Factory(:member, :parent_id=>@uwtc2.id) | |
@uwtc222 = Factory(:member, :parent_id=>@uwtc22.id) | |
@uwtc2222 = Factory(:member, :parent_id=>@uwtc222.id) | |
@uwtc3 = Factory(:member, :parent_id=>@uwtc.id) | |
@uwtc33 = Factory(:member, :parent_id=>@uwtc3.id) | |
@uwtc333 = Factory(:member, :parent_id=>@uwtc33.id) | |
@uwtc3333 = Factory(:member, :parent_id=>@uwtc333.id) | |
@uwtc4 = Factory(:member, :parent_id=>@uwtc.id) | |
@uwtc44 = Factory(:member, :parent_id=>@uwtc4.id) | |
@uwtc444 = Factory(:member, :parent_id=>@uwtc44.id) | |
@uwtc4444 = Factory(:member, :parent_id=>@uwtc444.id) | |
end | |
describe "4 set 3 kid user" do | |
it "should have 12 descdendents" do | |
@uwtc.child_level(@uwtc, 3).uniq.count.should == 12 | |
end | |
it "should have 9 descdendents" do | |
@uwtc_pre.child_level(@uwtc_pre, 3).uniq.count.should == 9 | |
end | |
it "should have 9 descdendents" do | |
@uwtc_pre_pre.child_level(@uwtc_pre_pre, 3).uniq.count.should == 6 | |
end | |
end | |
it "should have a reference_url afer creating member" do | |
@user.reference_url.should_not be_nil | |
end | |
it "should make member a be a referal of member b if member b signs up via member a's link" do | |
@user.children.should include(@user_two) | |
end | |
it "should do an MLM style thing where if user the references of my references should be included in my reference score" do | |
@user.all_children.should include(@user_three) | |
end | |
it "should have a method just for direct references" do | |
@user.children.should_not include(@user_three) | |
end | |
it "should run 3 levels deep" do | |
@user.all_children.should include(@user_four) | |
end | |
it "should not run 4 levels deep" do | |
@user.child_level(@user, 4).should_not include(@user_five) | |
end | |
it "should return true when a user has more than 5 references" do | |
@user.can_reward.should == true | |
end | |
it "should return true when a user has more than 5 references" do | |
@user_five.can_reward.should == true | |
end | |
it "should return true when a user has 20 or more references and they have only created one" do | |
r = Reward.create(:title=>'foo', :member_id=>@user.id) | |
@user.can_reward.should == true | |
end | |
it "should return true when a user has more than 5 references" do | |
@user_four.can_reward.should == true | |
end | |
it "should have a method just for indirect references" | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment