mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-01 19:48:08 +00:00
157 lines
4.8 KiB
JavaScript
157 lines
4.8 KiB
JavaScript
import {
|
|
INBOX_TYPES,
|
|
getInboxClassByType,
|
|
getInboxIconByType,
|
|
getInboxWarningIconClass,
|
|
} from '../inbox';
|
|
|
|
describe('#Inbox Helpers', () => {
|
|
describe('getInboxClassByType', () => {
|
|
it('should return correct class for web widget', () => {
|
|
expect(getInboxClassByType('Channel::WebWidget')).toEqual(
|
|
'globe-desktop'
|
|
);
|
|
});
|
|
it('should return correct class for fb page', () => {
|
|
expect(getInboxClassByType('Channel::FacebookPage')).toEqual(
|
|
'brand-facebook'
|
|
);
|
|
});
|
|
it('should return correct class for twitter profile', () => {
|
|
expect(getInboxClassByType('Channel::TwitterProfile')).toEqual(
|
|
'brand-twitter'
|
|
);
|
|
});
|
|
it('should return correct class for twilio sms', () => {
|
|
expect(getInboxClassByType('Channel::TwilioSms', '')).toEqual(
|
|
'brand-sms'
|
|
);
|
|
});
|
|
it('should return correct class for whatsapp', () => {
|
|
expect(getInboxClassByType('Channel::TwilioSms', 'whatsapp')).toEqual(
|
|
'brand-whatsapp'
|
|
);
|
|
});
|
|
it('should return correct class for Api', () => {
|
|
expect(getInboxClassByType('Channel::Api')).toEqual('cloud');
|
|
});
|
|
it('should return correct class for Email', () => {
|
|
expect(getInboxClassByType('Channel::Email')).toEqual('mail');
|
|
});
|
|
});
|
|
|
|
describe('getInboxIconByType', () => {
|
|
describe('fill variant (default)', () => {
|
|
it('returns correct icon for web widget', () => {
|
|
expect(getInboxIconByType(INBOX_TYPES.WEB)).toBe('i-ri-global-fill');
|
|
});
|
|
|
|
it('returns correct icon for Facebook', () => {
|
|
expect(getInboxIconByType(INBOX_TYPES.FB)).toBe('i-ri-messenger-fill');
|
|
});
|
|
|
|
it('returns correct icon for Twitter', () => {
|
|
expect(getInboxIconByType(INBOX_TYPES.TWITTER)).toBe(
|
|
'i-ri-twitter-x-fill'
|
|
);
|
|
});
|
|
|
|
it('returns correct icon for WhatsApp', () => {
|
|
expect(getInboxIconByType(INBOX_TYPES.WHATSAPP)).toBe(
|
|
'i-ri-whatsapp-fill'
|
|
);
|
|
});
|
|
|
|
it('returns correct icon for API', () => {
|
|
expect(getInboxIconByType(INBOX_TYPES.API)).toBe('i-ri-cloudy-fill');
|
|
});
|
|
|
|
it('returns correct icon for Email', () => {
|
|
expect(getInboxIconByType(INBOX_TYPES.EMAIL)).toBe('i-ri-mail-fill');
|
|
});
|
|
|
|
it('returns correct icon for Telegram', () => {
|
|
expect(getInboxIconByType(INBOX_TYPES.TELEGRAM)).toBe(
|
|
'i-ri-telegram-fill'
|
|
);
|
|
});
|
|
|
|
it('returns correct icon for Line', () => {
|
|
expect(getInboxIconByType(INBOX_TYPES.LINE)).toBe('i-ri-line-fill');
|
|
});
|
|
|
|
it('returns default icon for unknown type', () => {
|
|
expect(getInboxIconByType('UNKNOWN_TYPE')).toBe('i-ri-chat-1-fill');
|
|
});
|
|
|
|
it('returns default icon for undefined type', () => {
|
|
expect(getInboxIconByType(undefined)).toBe('i-ri-chat-1-fill');
|
|
});
|
|
});
|
|
|
|
describe('line variant', () => {
|
|
it('returns correct line icon for web widget', () => {
|
|
expect(getInboxIconByType(INBOX_TYPES.WEB, null, 'line')).toBe(
|
|
'i-ri-global-line'
|
|
);
|
|
});
|
|
|
|
it('returns correct line icon for Facebook', () => {
|
|
expect(getInboxIconByType(INBOX_TYPES.FB, null, 'line')).toBe(
|
|
'i-ri-messenger-line'
|
|
);
|
|
});
|
|
|
|
it('returns correct line icon for unknown type', () => {
|
|
expect(getInboxIconByType('UNKNOWN_TYPE', null, 'line')).toBe(
|
|
'i-ri-chat-1-line'
|
|
);
|
|
});
|
|
});
|
|
|
|
describe('Twilio cases', () => {
|
|
describe('fill variant', () => {
|
|
it('returns WhatsApp icon for Twilio WhatsApp number', () => {
|
|
expect(getInboxIconByType(INBOX_TYPES.TWILIO, 'whatsapp')).toBe(
|
|
'i-ri-whatsapp-fill'
|
|
);
|
|
});
|
|
|
|
it('returns SMS icon for regular Twilio number', () => {
|
|
expect(getInboxIconByType(INBOX_TYPES.TWILIO, 'sms')).toBe(
|
|
'i-ri-chat-1-fill'
|
|
);
|
|
});
|
|
|
|
it('returns SMS icon when phone number is undefined', () => {
|
|
expect(getInboxIconByType(INBOX_TYPES.TWILIO, undefined)).toBe(
|
|
'i-ri-chat-1-fill'
|
|
);
|
|
});
|
|
});
|
|
|
|
describe('line variant', () => {
|
|
it('returns WhatsApp line icon for Twilio WhatsApp number', () => {
|
|
expect(
|
|
getInboxIconByType(INBOX_TYPES.TWILIO, 'whatsapp', 'line')
|
|
).toBe('i-ri-whatsapp-line');
|
|
});
|
|
|
|
it('returns SMS line icon for regular Twilio number', () => {
|
|
expect(getInboxIconByType(INBOX_TYPES.TWILIO, 'sms', 'line')).toBe(
|
|
'i-ri-chat-1-line'
|
|
);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('getInboxWarningIconClass', () => {
|
|
it('should return correct class for warning', () => {
|
|
expect(getInboxWarningIconClass('Channel::FacebookPage', true)).toEqual(
|
|
'warning'
|
|
);
|
|
});
|
|
});
|
|
});
|