diff --git a/app/models/user.rb b/app/models/user.rb index c9104ff..a45995e 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -4,11 +4,11 @@ class User < ApplicationRecord extend Devise::Models devise :database_authenticatable, :registerable, - :recoverable, :rememberable, :trackable + :recoverable, :rememberable, :trackable, :validatable include DeviseTokenAuth::Concerns::User - validates :username, presence: true, uniqueness: true + validates :username, presence: true, uniqueness: { case_sensitive: false } has_many :tournaments, dependent: :destroy end diff --git a/spec/factories/users.rb b/spec/factories/users.rb index 42cb303..196c94f 100644 --- a/spec/factories/users.rb +++ b/spec/factories/users.rb @@ -4,5 +4,6 @@ FactoryBot.define do factory :user do username { Faker::Internet.unique.username } email { Faker::Internet.unique.email } + password { Faker::Internet.password } end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index c4ab25f..c3ee007 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -7,6 +7,12 @@ RSpec.describe User, type: :model do it { should have_many :tournaments } end + describe 'validation' do + subject { create(:user) } + it { should validate_presence_of :username } + it { should validate_uniqueness_of(:username).case_insensitive } + end + it 'has a valid factory' do expect(build(:user)).to be_valid end