46 lines
1.5 KiB
JavaScript
46 lines
1.5 KiB
JavaScript
import { createWrapper } from '@vue/test-utils';
|
|
import configMixin from '../configMixin';
|
|
import Vue from 'vue';
|
|
|
|
global.chatwootWebChannel = {
|
|
avatarUrl: 'https://test.url',
|
|
hasAConnectedAgentBot: 'AgentBot',
|
|
enabledFeatures: ['emoji_picker', 'attachments', 'end_conversation'],
|
|
preChatFormOptions: { require_email: false, pre_chat_message: '' },
|
|
};
|
|
|
|
global.chatwootWidgetDefaults = {
|
|
useInboxAvatarForBot: true,
|
|
};
|
|
|
|
describe('configMixin', () => {
|
|
test('returns config', () => {
|
|
const Component = {
|
|
render() {},
|
|
title: 'TestComponent',
|
|
mixins: [configMixin],
|
|
};
|
|
const Constructor = Vue.extend(Component);
|
|
const vm = new Constructor().$mount();
|
|
const wrapper = createWrapper(vm);
|
|
expect(wrapper.vm.hasEmojiPickerEnabled).toBe(true);
|
|
expect(wrapper.vm.hasEndConversationEnabled).toBe(true);
|
|
expect(wrapper.vm.hasAttachmentsEnabled).toBe(true);
|
|
expect(wrapper.vm.hasAConnectedAgentBot).toBe(true);
|
|
expect(wrapper.vm.useInboxAvatarForBot).toBe(true);
|
|
expect(wrapper.vm.inboxAvatarUrl).toBe('https://test.url');
|
|
expect(wrapper.vm.channelConfig).toEqual({
|
|
avatarUrl: 'https://test.url',
|
|
hasAConnectedAgentBot: 'AgentBot',
|
|
enabledFeatures: ['emoji_picker', 'attachments', 'end_conversation'],
|
|
preChatFormOptions: {
|
|
pre_chat_message: '',
|
|
require_email: false,
|
|
},
|
|
});
|
|
expect(wrapper.vm.preChatFormOptions).toEqual({
|
|
requireEmail: false,
|
|
preChatMessage: '',
|
|
});
|
|
});
|
|
});
|