Update user model specs (#334)
This commit is contained in:
parent
84799fd0a1
commit
330e8625d3
2 changed files with 10 additions and 21 deletions
|
@ -60,10 +60,10 @@ class User < ApplicationRecord
|
||||||
# Used by the actionCable/PubSub Service we use for real time communications
|
# Used by the actionCable/PubSub Service we use for real time communications
|
||||||
has_secure_token :pubsub_token
|
has_secure_token :pubsub_token
|
||||||
|
|
||||||
validates_uniqueness_of :email, scope: :account_id
|
# The validation below has been commented out as it does not
|
||||||
validates :email, presence: true
|
# work because :validatable in devise overrides this.
|
||||||
validates :name, presence: true
|
# validates_uniqueness_of :email, scope: :account_id
|
||||||
validates :account_id, presence: true
|
validates :email, :name, :account_id, presence: true
|
||||||
|
|
||||||
enum role: [:agent, :administrator]
|
enum role: [:agent, :administrator]
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe User do
|
RSpec.describe User do
|
||||||
|
let!(:user) { create(:user) }
|
||||||
|
|
||||||
context 'validations' do
|
context 'validations' do
|
||||||
it { is_expected.to validate_presence_of(:email) }
|
it { is_expected.to validate_presence_of(:email) }
|
||||||
it { is_expected.to validate_presence_of(:name) }
|
it { is_expected.to validate_presence_of(:name) }
|
||||||
|
@ -12,29 +14,16 @@ RSpec.describe User do
|
||||||
context 'associations' do
|
context 'associations' do
|
||||||
it { is_expected.to belong_to(:account) }
|
it { is_expected.to belong_to(:account) }
|
||||||
it { is_expected.to belong_to(:inviter).class_name('User').required(false) }
|
it { is_expected.to belong_to(:inviter).class_name('User').required(false) }
|
||||||
|
it { is_expected.to have_many(:assigned_conversations).class_name('Conversation').dependent(:nullify) }
|
||||||
it do
|
|
||||||
is_expected.to have_many(:assigned_conversations)
|
|
||||||
.class_name('Conversation').dependent(:nullify)
|
|
||||||
end
|
|
||||||
it { is_expected.to have_many(:inbox_members).dependent(:destroy) }
|
it { is_expected.to have_many(:inbox_members).dependent(:destroy) }
|
||||||
it { is_expected.to have_many(:assigned_inboxes).through(:inbox_members) }
|
it { is_expected.to have_many(:assigned_inboxes).through(:inbox_members) }
|
||||||
it { is_expected.to have_many(:messages) }
|
it { is_expected.to have_many(:messages) }
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'pubsub_token' do
|
describe 'pubsub_token' do
|
||||||
let(:user) { create(:user) }
|
before { user.update(name: Faker::Name.name) }
|
||||||
|
|
||||||
it 'gets created on object create' do
|
it { expect(user.pubsub_token).not_to eq(nil) }
|
||||||
obj = user
|
it { expect(user.saved_changes.keys).not_to eq('pubsub_token') }
|
||||||
expect(obj.pubsub_token).not_to eq(nil)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'does not get updated on object update' do
|
|
||||||
obj = user
|
|
||||||
old_token = obj.pubsub_token
|
|
||||||
obj.update(name: 'test')
|
|
||||||
expect(obj.pubsub_token).to eq(old_token)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue