mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-06 05:57:49 +00:00
# Pull Request Template ## Description This PR will replace the usage of `configMixin` with the `useConfig` composable. **Files updated** 1. dashboard/components/layout/sidebarComponents/SecondaryNavItem.vue 2. dashboard/components/widgets/conversation/MessagesView.vue 3. dashboard/routes/dashboard/settings/inbox/Settings.vue **(Not used)** 4. dashboard/routes/dashboard/settings/inbox/FinishSetup.vue **(Not used)** 5. dashboard/routes/dashboard/settings/inbox/settingsPage/CollaboratorsPage.vue 6. dashboard/routes/dashboard/settings/profile/NotificationPreferences.vue **(Not used)** 7. dashboard/routes/dashboard/settings/profile/AudioNotifications.vue **(Not used)** 8. dashboard/routes/dashboard/settings/sla/Index.vue **(Not used)** 9. dashboard/routes/dashboard/settings/account/Index.vue 10. survey/views/Response.vue **(Not used)** Fixes https://linear.app/chatwoot/issue/CW-3464/rewrite-configmixin-mixin-to-a-composable ## Type of change - [x] New feature (non-breaking change which adds functionality) ## How Has This Been Tested? Test in the component related pages ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [x] I have commented on my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged and published in downstream modules
52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
import { useConfig } from '../useConfig';
|
|
|
|
describe('useConfig', () => {
|
|
const originalChatwootConfig = window.chatwootConfig;
|
|
|
|
beforeEach(() => {
|
|
window.chatwootConfig = {
|
|
hostURL: 'https://example.com',
|
|
vapidPublicKey: 'vapid-key',
|
|
enabledLanguages: ['en', 'fr'],
|
|
isEnterprise: 'true',
|
|
enterprisePlanName: 'enterprise',
|
|
};
|
|
});
|
|
|
|
afterEach(() => {
|
|
window.chatwootConfig = originalChatwootConfig;
|
|
});
|
|
|
|
it('returns the correct configuration values', () => {
|
|
const config = useConfig();
|
|
|
|
expect(config.hostURL).toBe('https://example.com');
|
|
expect(config.vapidPublicKey).toBe('vapid-key');
|
|
expect(config.enabledLanguages).toEqual(['en', 'fr']);
|
|
expect(config.isEnterprise).toBe(true);
|
|
expect(config.enterprisePlanName).toBe('enterprise');
|
|
});
|
|
|
|
it('handles missing configuration values', () => {
|
|
window.chatwootConfig = {};
|
|
const config = useConfig();
|
|
|
|
expect(config.hostURL).toBeUndefined();
|
|
expect(config.vapidPublicKey).toBeUndefined();
|
|
expect(config.enabledLanguages).toBeUndefined();
|
|
expect(config.isEnterprise).toBe(false);
|
|
expect(config.enterprisePlanName).toBeUndefined();
|
|
});
|
|
|
|
it('handles undefined window.chatwootConfig', () => {
|
|
window.chatwootConfig = undefined;
|
|
const config = useConfig();
|
|
|
|
expect(config.hostURL).toBeUndefined();
|
|
expect(config.vapidPublicKey).toBeUndefined();
|
|
expect(config.enabledLanguages).toBeUndefined();
|
|
expect(config.isEnterprise).toBe(false);
|
|
expect(config.enterprisePlanName).toBeUndefined();
|
|
});
|
|
});
|