Sha256: 99180d660b41fb493aa104127a835e4c4bf0c09b32d140fb8da143e1e366f1ea

Contents?: true

Size: 1.32 KB

Versions: 1

Compression:

Stored size: 1.32 KB

Contents

require 'test/test_helper'
require 'test/model_tests_helper'

class ReferableTest < ActiveSupport::TestCase
  def setup
  end
  
  test 'should look up referrer' do
    blog = mock()
    Blog.expects(:find_by_referrer_token).with('abc123').returns(blog)
    assert Referral.lookup_referrer('abc123') == blog
  end
  
  test 'should return nil if no referrer is found' do
    Blog.expects(:find_by_referrer_token).with('abc123').returns(nil)
    assert_nil Referral.lookup_referrer('abc123')
  end
  
  test 'should create referral from token' do
    Blog.expects(:find_by_referrer_token).with('abc123').returns(create_user) # I just need an AR obj here to avoid massive stubbing. 
                                                                              # Should be a blog not a user.
    result = Referral.from_token('abc123')
    assert result.is_a?( Referral)
    assert_not_nil result.referral_token
    assert_not_nil result.referrer_id
    assert_not_nil result.referrer_type
    assert !result.new_record?
  end
  
  test 'should never generate the same referral token for different users' do
    referral_tokens = []
    10.times do
      ref = new_referral(:referrer_id => 1, :referrer_type => 'Publisher')
      token = ref.generate_token
      assert !referral_tokens.include?(token)
      referral_tokens << token
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
devise_referable-0.1.0 test/models/referral_test.rb