Sha256: 263858f643bc6e275853eaff0c12db4d9474ce9ea4482cdd3f264721c8fe13b0

Contents?: true

Size: 1.69 KB

Versions: 35

Compression:

Stored size: 1.69 KB

Contents

require "rails_helper"

RSpec.describe User, type: :model do
  it "should have a valid factores" do
    expect(create(:user)).to be_valid
  end

  it { is_expected.to respond_to :is_active }

  describe "default values" do
    it "default active value should be true" do
      @user = create(:user)
      expect(@user.is_active).to eq true
    end

    it "should create a valid password upon creation" do
      user = create(:user, password: nil, password_confirmation: nil)
      expect(user).to be_persisted
    end

    it "should not override choosen password" do
      user = create(:user, password: "totototo", password_confirmation: nil)
      expect(user.password).to eq "totototo"
    end

    it "should send a welcome message upon creation" do
      expect {
        create(:user)
      }.to change(ActionMailer::Base.deliveries, :count).by(1)
    end
  end

  describe "avatar" do
    before do
      @user = create(:user,
        :email  => "user@example.org",
        :avatar => Dorsale::Engine.root.join("spec/files/avatar.png").open,
      )
    end

    it "gravatar_url" do
      expect(@user.gravatar_url).to include "gravatar"
    end

    it "local_avatar_url" do
      expect(@user.local_avatar_url).to include "avatar.png"
    end

    it "avatar_url should return local_avatar_url if present" do
      expect(@user.avatar_url).to include "avatar.png"
    end

    it "avatar_url should return gravatar_url if no local avatar" do
      @user.remove_avatar!
      @user.save!
      expect(@user.avatar_url).to include "gravatar"
    end

    it "should work if email is nil" do
      @user.remove_avatar!
      allow(@user).to receive(:email)
      expect(@user.avatar_url).to be_present
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
dorsale-4.0.0 spec/models/dorsale/users_spec.rb
dorsale-3.20.0 spec/models/dorsale/users_spec.rb
dorsale-3.19.1 spec/models/dorsale/users_spec.rb
dorsale-3.19.0 spec/models/dorsale/users_spec.rb
dorsale-3.18.0 spec/models/dorsale/users_spec.rb
dorsale-3.17.0 spec/models/dorsale/users_spec.rb
dorsale-3.16.0 spec/models/dorsale/users_spec.rb
dorsale-3.15.0 spec/models/dorsale/users_spec.rb
dorsale-3.14.11 spec/models/dorsale/users_spec.rb
dorsale-3.14.10 spec/models/dorsale/users_spec.rb
dorsale-3.14.9 spec/models/dorsale/users_spec.rb
dorsale-3.14.8 spec/models/dorsale/users_spec.rb
dorsale-3.14.7 spec/models/dorsale/users_spec.rb
dorsale-3.14.6 spec/models/dorsale/users_spec.rb
dorsale-3.14.5 spec/models/dorsale/users_spec.rb
dorsale-3.14.3 spec/models/dorsale/users_spec.rb
dorsale-3.14.2 spec/models/dorsale/users_spec.rb
dorsale-3.14.1 spec/models/dorsale/users_spec.rb
dorsale-3.14.0 spec/models/dorsale/users_spec.rb
dorsale-3.13.0 spec/models/dorsale/users_spec.rb