import FeatureFlagManager from '../../core/featureFlags/featureFlagManager'; import Logger from '../../core/logging/logger'; import { ContentsquareModule } from '../../core/nativeModules'; import { setUrlMaskingPatterns, triggerNativeCrash, } from '../../error/csqErrorTracking'; jest.mock('../../core/featureFlags/featureFlagManager', () => ({ featureFlags: { crashReporter: true, // Default value for tests; override as needed }, })); jest.mock('../../core/logging/logger', () => ({ warn: jest.fn(), })); jest.mock('../../core/nativeModules', () => ({ ContentsquareModule: { setUrlMaskingPatterns: jest.fn(), triggerNativeCrash: jest.fn(), }, })); describe('CSQ Error Tracking Functions', () => { const { featureFlags } = FeatureFlagManager; beforeEach(() => { jest.clearAllMocks(); }); describe('setUrlMaskingPatterns', () => { it('should call ContentsquareModule.setUrlMaskingPatterns with the correct patterns', () => { const patterns = ['https://example.com', 'https://test.com']; setUrlMaskingPatterns(patterns); expect(ContentsquareModule.setUrlMaskingPatterns).toHaveBeenCalledTimes( 1 ); expect(ContentsquareModule.setUrlMaskingPatterns).toHaveBeenCalledWith( patterns ); }); it('should handle empty patterns array', () => { const patterns: string[] = []; setUrlMaskingPatterns(patterns); expect(ContentsquareModule.setUrlMaskingPatterns).toHaveBeenCalledTimes( 1 ); expect(ContentsquareModule.setUrlMaskingPatterns).toHaveBeenCalledWith( patterns ); }); it('should handle single pattern', () => { const patterns = ['https://api.example.com/*']; setUrlMaskingPatterns(patterns); expect(ContentsquareModule.setUrlMaskingPatterns).toHaveBeenCalledTimes( 1 ); expect(ContentsquareModule.setUrlMaskingPatterns).toHaveBeenCalledWith( patterns ); }); }); describe('triggerNativeCrash', () => { it('should call ContentsquareModule.triggerNativeCrash when crashReporter is enabled', () => { featureFlags.crashReporter = true; triggerNativeCrash(); expect(ContentsquareModule.triggerNativeCrash).toHaveBeenCalledTimes(1); expect(Logger.warn).not.toHaveBeenCalled(); }); }); });