mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-04 04:57:51 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			152 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * @jest-environment jsdom
 | 
						|
 */
 | 
						|
 | 
						|
import {
 | 
						|
  shouldPlayAudio,
 | 
						|
  notificationEnabled,
 | 
						|
  getAssigneeFromNotification,
 | 
						|
} from '../AudioNotificationHelper';
 | 
						|
 | 
						|
describe('shouldPlayAudio', () => {
 | 
						|
  describe('Document active', () => {
 | 
						|
    it('Retuns true if incoming message', () => {
 | 
						|
      const message = {
 | 
						|
        conversation_id: 10,
 | 
						|
        sender_id: 5,
 | 
						|
        message_type: 0,
 | 
						|
        private: false,
 | 
						|
      };
 | 
						|
      const [conversationId, userId, isDocHiddden] = [1, 2, false];
 | 
						|
      const result = shouldPlayAudio(
 | 
						|
        message,
 | 
						|
        conversationId,
 | 
						|
        userId,
 | 
						|
        isDocHiddden
 | 
						|
      );
 | 
						|
      expect(result).toBe(true);
 | 
						|
    });
 | 
						|
    it('Retuns false if outgoing message', () => {
 | 
						|
      const message = {
 | 
						|
        conversation_id: 10,
 | 
						|
        sender_id: 5,
 | 
						|
        message_type: 1,
 | 
						|
        private: false,
 | 
						|
      };
 | 
						|
      const [conversationId, userId, isDocHiddden] = [1, 2, false];
 | 
						|
      const result = shouldPlayAudio(
 | 
						|
        message,
 | 
						|
        conversationId,
 | 
						|
        userId,
 | 
						|
        isDocHiddden
 | 
						|
      );
 | 
						|
      expect(result).toBe(false);
 | 
						|
    });
 | 
						|
 | 
						|
    it('Retuns false if from Same sender', () => {
 | 
						|
      const message = {
 | 
						|
        conversation_id: 1,
 | 
						|
        sender_id: 2,
 | 
						|
        message_type: 0,
 | 
						|
        private: false,
 | 
						|
      };
 | 
						|
      const [conversationId, userId, isDocHiddden] = [1, 2, true];
 | 
						|
      const result = shouldPlayAudio(
 | 
						|
        message,
 | 
						|
        conversationId,
 | 
						|
        userId,
 | 
						|
        isDocHiddden
 | 
						|
      );
 | 
						|
      expect(result).toBe(false);
 | 
						|
    });
 | 
						|
    it('Retuns true if private message from another agent', () => {
 | 
						|
      const message = {
 | 
						|
        conversation_id: 1,
 | 
						|
        sender_id: 5,
 | 
						|
        message_type: 1,
 | 
						|
        private: true,
 | 
						|
      };
 | 
						|
      const [conversationId, userId, isDocHiddden] = [1, 2, true];
 | 
						|
      const result = shouldPlayAudio(
 | 
						|
        message,
 | 
						|
        conversationId,
 | 
						|
        userId,
 | 
						|
        isDocHiddden
 | 
						|
      );
 | 
						|
      expect(result).toBe(true);
 | 
						|
    });
 | 
						|
  });
 | 
						|
  describe('Document inactive', () => {
 | 
						|
    it('Retuns true if incoming message', () => {
 | 
						|
      const message = {
 | 
						|
        conversation_id: 1,
 | 
						|
        sender_id: 5,
 | 
						|
        message_type: 0,
 | 
						|
        private: false,
 | 
						|
      };
 | 
						|
      const [conversationId, userId, isDocHiddden] = [1, 2, true];
 | 
						|
      const result = shouldPlayAudio(
 | 
						|
        message,
 | 
						|
        conversationId,
 | 
						|
        userId,
 | 
						|
        isDocHiddden
 | 
						|
      );
 | 
						|
      expect(result).toBe(true);
 | 
						|
    });
 | 
						|
    it('Retuns false if outgoing message', () => {
 | 
						|
      const message = {
 | 
						|
        conversation_id: 1,
 | 
						|
        sender_id: 5,
 | 
						|
        message_type: 1,
 | 
						|
        private: false,
 | 
						|
      };
 | 
						|
      const [conversationId, userId, isDocHiddden] = [1, 2, true];
 | 
						|
      const result = shouldPlayAudio(
 | 
						|
        message,
 | 
						|
        conversationId,
 | 
						|
        userId,
 | 
						|
        isDocHiddden
 | 
						|
      );
 | 
						|
      expect(result).toBe(false);
 | 
						|
    });
 | 
						|
  });
 | 
						|
});
 | 
						|
describe('notificationEnabled', () => {
 | 
						|
  it('returns true if mine', () => {
 | 
						|
    const [enableAudioAlerts, userId, id] = ['mine', 1, 1];
 | 
						|
    const result = notificationEnabled(enableAudioAlerts, userId, id);
 | 
						|
    expect(result).toBe(true);
 | 
						|
  });
 | 
						|
  it('returns true if all', () => {
 | 
						|
    const [enableAudioAlerts, userId, id] = ['all', 1, 2];
 | 
						|
    const result = notificationEnabled(enableAudioAlerts, userId, id);
 | 
						|
    expect(result).toBe(true);
 | 
						|
  });
 | 
						|
  it('returns false if none', () => {
 | 
						|
    const [enableAudioAlerts, userId, id] = ['none', 1, 2];
 | 
						|
    const result = notificationEnabled(enableAudioAlerts, userId, id);
 | 
						|
    expect(result).toBe(false);
 | 
						|
  });
 | 
						|
});
 | 
						|
describe('getAssigneeFromNotification', () => {
 | 
						|
  it('Retuns true if gets notification from assignee', () => {
 | 
						|
    const currentConv = {
 | 
						|
      id: 1,
 | 
						|
      accountId: 1,
 | 
						|
      meta: {
 | 
						|
        assignee: {
 | 
						|
          id: 1,
 | 
						|
          name: 'John',
 | 
						|
        },
 | 
						|
      },
 | 
						|
    };
 | 
						|
    const result = getAssigneeFromNotification(currentConv);
 | 
						|
    expect(result).toBe(1);
 | 
						|
  });
 | 
						|
  it('Retuns true if gets notification from assignee is udefined', () => {
 | 
						|
    const currentConv = {};
 | 
						|
    const result = getAssigneeFromNotification(currentConv);
 | 
						|
    expect(result).toBe(undefined);
 | 
						|
  });
 | 
						|
});
 |