Sha256: 04e3f1fa044c43f9b4a5f5866d934884e96bf445550089ba41e3ae90d1f3f1f9

Contents?: true

Size: 1.52 KB

Versions: 19

Compression:

Stored size: 1.52 KB

Contents

require 'rails_helper'
require 'byebug'

RSpec.describe User, type: :model do
  let(:keppler_user) { create(:user) }
  let(:admin_user) { build_stubbed(:user, role_ids: '2') }

  context 'database' do
    context 'columns' do
      it { should have_db_column(:name).of_type(:string) }
      it { should have_db_column(:username).of_type(:string) }
      it { should have_db_column(:email).of_type(:string) }
      it { should have_db_column(:encrypted_password).of_type(:string) }
      it { should have_db_column(:deleted_at).of_type(:datetime) }
    end

    context 'validates' do
      it 'validate name' do
        user = build(:user, name: nil)
        expect(user).to be_invalid
      end

      it 'validate email' do
        user = build(:user, email: nil)
        expect(user).to be_invalid
      end

      it 'validate role_ids' do
        user = build(:user, role_ids: nil)
        expect(user).to be_invalid
      end
    end
  end

  context 'class fuctions' do
    it { expect(User.search_field).to eq(:name_or_username_or_email_cont) }

    it 'user filter by role keppler_admin' do
      query = User.all.order(created_at: :desc).page(1)
      users = User.filter_by_role(query, 'keppler_admin')
      expect(users.shuffle.first.rol).to eq('keppler_admin')
    end
  end

  context 'instance fuctions' do
    it { expect(keppler_user.rol).to eq('keppler_admin') }
    it { expect(keppler_user.keppler_admin?).to eq(true) }
    it { expect(admin_user.admin?).to eq(true) }
    it { expect(keppler_user.permalink?).to eq(true) }
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
keppler-2.1.11 installer/core/spec/models/user_spec.rb
keppler-2.1.10 installer/core/spec/models/user_spec.rb
keppler-2.1.9 installer/core/spec/models/user_spec.rb
keppler-2.1.8 installer/core/spec/models/user_spec.rb
keppler-2.1.7 installer/core/spec/models/user_spec.rb
keppler-2.1.6 installer/core/spec/models/user_spec.rb
keppler-2.1.5 installer/core/spec/models/user_spec.rb
keppler-2.1.4 installer/core/spec/models/user_spec.rb
keppler-2.1.3 installer/core/spec/models/user_spec.rb
keppler-2.1.2 installer/core/spec/models/user_spec.rb
keppler-2.1.1 installer/core/spec/models/user_spec.rb
keppler-2.1.pre.p1 installer/core/spec/models/user_spec.rb
keppler-2.1 installer/core/spec/models/user_spec.rb
keppler-2.0.7 installer/core/spec/models/user_spec.rb
keppler-2.0.6 installer/core/spec/models/user_spec.rb
keppler-2.0.5 installer/core/spec/models/user_spec.rb
keppler-2.0.4.p1 installer/core/spec/models/user_spec.rb
keppler-2.0.4.pre.p1 installer/core/spec/models/user_spec.rb
keppler-2.0.4 installer/core/spec/models/user_spec.rb