7f26b34b15
Added new notification settings API for user Co-authored-by: Sojan Jose <sojan@pepalo.com>
39 lines
1.4 KiB
Ruby
39 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe User do
|
|
let!(:user) { create(:user) }
|
|
|
|
context 'validations' do
|
|
it { is_expected.to validate_presence_of(:email) }
|
|
it { is_expected.to validate_presence_of(:name) }
|
|
it { is_expected.to validate_presence_of(:account_id) }
|
|
end
|
|
|
|
context 'associations' do
|
|
it { is_expected.to belong_to(:account) }
|
|
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 { is_expected.to have_many(:inbox_members).dependent(:destroy) }
|
|
it { is_expected.to have_many(:notification_settings).dependent(:destroy) }
|
|
it { is_expected.to have_many(:assigned_inboxes).through(:inbox_members) }
|
|
it { is_expected.to have_many(:messages) }
|
|
end
|
|
|
|
describe 'pubsub_token' do
|
|
before { user.update(name: Faker::Name.name) }
|
|
|
|
it { expect(user.pubsub_token).not_to eq(nil) }
|
|
it { expect(user.saved_changes.keys).not_to eq('pubsub_token') }
|
|
end
|
|
|
|
describe 'notification_settings' do
|
|
it 'gets created with the right default settings' do
|
|
expect(user.notification_settings).not_to eq(nil)
|
|
|
|
expect(user.notification_settings.first.conversation_creation?).to eq(false)
|
|
expect(user.notification_settings.first.conversation_assignment?).to eq(true)
|
|
end
|
|
end
|
|
end
|