mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-02 20:18:08 +00:00
This PR will prevent saving user preferences and online status when impersonating. Previously, these settings could be updated during impersonation, causing the user to see a different view or UI settings. Fixes https://linear.app/chatwoot/issue/CW-4163/impersonation-improvements
38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
import { useImpersonation } from '../useImpersonation';
|
|
|
|
vi.mock('shared/helpers/sessionStorage', () => ({
|
|
__esModule: true,
|
|
default: {
|
|
get: vi.fn(),
|
|
set: vi.fn(),
|
|
},
|
|
}));
|
|
|
|
import SessionStorage from 'shared/helpers/sessionStorage';
|
|
import { SESSION_STORAGE_KEYS } from 'dashboard/constants/sessionStorage';
|
|
|
|
describe('useImpersonation', () => {
|
|
beforeEach(() => {
|
|
vi.clearAllMocks();
|
|
});
|
|
|
|
it('should return true if impersonation flag is set in session storage', () => {
|
|
SessionStorage.get.mockReturnValue(true);
|
|
const { isImpersonating } = useImpersonation();
|
|
expect(isImpersonating.value).toBe(true);
|
|
expect(SessionStorage.get).toHaveBeenCalledWith(
|
|
SESSION_STORAGE_KEYS.IMPERSONATION_USER
|
|
);
|
|
});
|
|
|
|
it('should return false if impersonation flag is not set in session storage', () => {
|
|
SessionStorage.get.mockReturnValue(false);
|
|
const { isImpersonating } = useImpersonation();
|
|
expect(isImpersonating.value).toBe(false);
|
|
expect(SessionStorage.get).toHaveBeenCalledWith(
|
|
SESSION_STORAGE_KEYS.IMPERSONATION_USER
|
|
);
|
|
});
|
|
});
|