user_spec.rb 2.16 KB
Newer Older
gitlabhq's avatar
gitlabhq committed
1 2 3 4 5 6 7 8
require 'spec_helper'

describe User do
  describe "Associations" do
    it { should have_many(:projects) }
    it { should have_many(:users_projects) }
    it { should have_many(:issues) }
    it { should have_many(:assigned_issues) }
9 10
    it { should have_many(:merge_requests) }
    it { should have_many(:assigned_merge_requests) }
gitlabhq's avatar
gitlabhq committed
11 12 13 14 15 16 17 18
  end

  describe "Respond to" do
    it { should respond_to(:is_admin?) }
    it { should respond_to(:identifier) }
    it { should respond_to(:name) }
  end

Nihad Abbasov's avatar
Nihad Abbasov committed
19
  it "should return valid identifier" do
gitlabhq's avatar
gitlabhq committed
20
    user = User.new(:email => "test@mail.com")
Drew's avatar
Drew committed
21
    user.identifier.should == "test_mail_com"
gitlabhq's avatar
gitlabhq committed
22
  end
23

Nihad Abbasov's avatar
Nihad Abbasov committed
24 25 26 27 28
  it "should have authentication token" do
    user = Factory(:user)
    user.authentication_token.should_not == ""
  end

29
  describe "dependent" do
Nihad Abbasov's avatar
Nihad Abbasov committed
30
    before do
31
      @user = Factory :user
Nihad Abbasov's avatar
Nihad Abbasov committed
32
      @note = Factory :note,
33 34 35 36
        :author => @user,
        :project => Factory(:project)
    end

Nihad Abbasov's avatar
Nihad Abbasov committed
37
    it "should destroy all notes with user" do
38 39 40 41 42
      Note.find_by_id(@note.id).should_not be_nil
      @user.destroy
      Note.find_by_id(@note.id).should be_nil
    end
  end
gitlabhq's avatar
gitlabhq committed
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
end
# == Schema Information
#
# Table name: users
#
#  id                     :integer         not null, primary key
#  email                  :string(255)     default(""), not null
#  encrypted_password     :string(128)     default(""), not null
#  reset_password_token   :string(255)
#  reset_password_sent_at :datetime
#  remember_created_at    :datetime
#  sign_in_count          :integer         default(0)
#  current_sign_in_at     :datetime
#  last_sign_in_at        :datetime
#  current_sign_in_ip     :string(255)
#  last_sign_in_ip        :string(255)
#  created_at             :datetime
#  updated_at             :datetime
#  name                   :string(255)
#  admin                  :boolean         default(FALSE), not null
Saito's avatar
Saito committed
63 64 65 66 67
#  projects_limit         :integer         default(10)
#  skype                  :string(255)     default(""), not null
#  linkedin               :string(255)     default(""), not null
#  twitter                :string(255)     default(""), not null
#  authentication_token   :string(255)
Valery Sizov's avatar
Valery Sizov committed
68
#  dark_scheme            :boolean         default(FALSE), not null
gitlabhq's avatar
gitlabhq committed
69 70
#