mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-10-31 19:17:48 +00:00 
			
		
		
		
	fix: assigned_conversation_new_message? NoMethod error (#5225)
This commit is contained in:
		| @@ -15,6 +15,9 @@ class NotificationBuilder | ||||
|  | ||||
|   def user_subscribed_to_notification? | ||||
|     notification_setting = user.notification_settings.find_by(account_id: account.id) | ||||
|     # added for the case where an assignee might be removed from the account but remains in conversation | ||||
|     return if notification_setting.blank? | ||||
|  | ||||
|     return true if notification_setting.public_send("email_#{notification_type}?") | ||||
|     return true if notification_setting.public_send("push_#{notification_type}?") | ||||
|  | ||||
|   | ||||
							
								
								
									
										40
									
								
								spec/builders/notification_builder_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								spec/builders/notification_builder_spec.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| require 'rails_helper' | ||||
|  | ||||
| describe ::NotificationBuilder do | ||||
|   include ActiveJob::TestHelper | ||||
|  | ||||
|   describe '#perform' do | ||||
|     let!(:account) { create(:account) } | ||||
|     let!(:user) { create(:user, account: account) } | ||||
|     let!(:primary_actor) { create(:conversation, account: account) } | ||||
|  | ||||
|     before do | ||||
|       notification_setting = user.notification_settings.find_by(account_id: account.id) | ||||
|       notification_setting.selected_email_flags = [:email_conversation_creation] | ||||
|       notification_setting.save! | ||||
|     end | ||||
|  | ||||
|     it 'creates a notification' do | ||||
|       expect do | ||||
|         described_class.new( | ||||
|           notification_type: 'conversation_creation', | ||||
|           user: user, | ||||
|           account: account, | ||||
|           primary_actor: primary_actor | ||||
|         ).perform | ||||
|       end.to change { user.notifications.count }.by(1) | ||||
|     end | ||||
|  | ||||
|     it 'will not throw error if notification setting is not present' do | ||||
|       user.account_users.destroy_all | ||||
|       expect( | ||||
|         described_class.new( | ||||
|           notification_type: 'conversation_creation', | ||||
|           user: user, | ||||
|           account: account, | ||||
|           primary_actor: primary_actor | ||||
|         ).perform | ||||
|       ).to be_nil | ||||
|     end | ||||
|   end | ||||
| end | ||||
		Reference in New Issue
	
	Block a user
	 Sojan Jose
					Sojan Jose