diff --git a/redisinsight/ui/src/components/config/Config.tsx b/redisinsight/ui/src/components/config/Config.tsx index 5f707de5cb..4cceb306aa 100644 --- a/redisinsight/ui/src/components/config/Config.tsx +++ b/redisinsight/ui/src/components/config/Config.tsx @@ -15,7 +15,8 @@ import { setAnalyticsIdentified, } from 'uiSrc/slices/app/info' -import { checkIsAnalyticsGranted, getTelemetryService } from 'uiSrc/telemetry' +import { getTelemetryService } from 'uiSrc/telemetry' +import { checkIsAnalyticsGranted } from 'uiSrc/telemetry/checkAnalytics' import { setFavicon, isDifferentConsentsExists } from 'uiSrc/utils' import { fetchUnsupportedCliCommandsAction } from 'uiSrc/slices/cli/cli-settings' import { fetchRedisCommandsInfo } from 'uiSrc/slices/app/redis-commands' diff --git a/redisinsight/ui/src/slices/tests/browser/stream.spec.ts b/redisinsight/ui/src/slices/tests/browser/stream.spec.ts index f4fe9ec73d..5087fbad3a 100644 --- a/redisinsight/ui/src/slices/tests/browser/stream.spec.ts +++ b/redisinsight/ui/src/slices/tests/browser/stream.spec.ts @@ -7,6 +7,7 @@ import { } from 'apiSrc/modules/browser/dto/stream.dto' import { AxiosError } from 'axios' import { cloneDeep, omit } from 'lodash' +import { cleanup, initialStateDefault, mockedStore, } from 'uiSrc/utils/test-utils' import successMessages from 'uiSrc/components/notifications/success-messages' import { SortOrder } from 'uiSrc/constants' import { apiService } from 'uiSrc/services' @@ -71,7 +72,6 @@ import reducer, { deleteMessageFromList } from 'uiSrc/slices/browser/stream' import { StreamViewType } from 'uiSrc/slices/interfaces/stream' -import { cleanup, initialStateDefault, mockedStore, } from 'uiSrc/utils/test-utils' import { addErrorNotification, addMessageNotification } from '../../app/notifications' jest.mock('uiSrc/services') diff --git a/redisinsight/ui/src/telemetry/checkAnalytics.ts b/redisinsight/ui/src/telemetry/checkAnalytics.ts new file mode 100644 index 0000000000..087dd174ad --- /dev/null +++ b/redisinsight/ui/src/telemetry/checkAnalytics.ts @@ -0,0 +1,6 @@ +import { get } from 'lodash' +import store from 'uiSrc/slices/store' + +// Check is user give access to collect his events +export const checkIsAnalyticsGranted = () => + !!get(store.getState(), 'user.settings.config.agreements.analytics', false) diff --git a/redisinsight/ui/src/telemetry/telemetryUtils.ts b/redisinsight/ui/src/telemetry/telemetryUtils.ts index 42c77f9cdd..635e6ef2cf 100644 --- a/redisinsight/ui/src/telemetry/telemetryUtils.ts +++ b/redisinsight/ui/src/telemetry/telemetryUtils.ts @@ -2,14 +2,13 @@ * Telemetry and analytics module. * This module abstracts the exact service/framework used for tracking usage. */ -import { get } from 'lodash' import isGlob from 'is-glob' import * as jsonpath from 'jsonpath' import { Nullable } from 'uiSrc/utils' -import store from 'uiSrc/slices/store' import { localStorageService } from 'uiSrc/services' import { ApiEndpoints, BrowserStorageItem, KeyTypes } from 'uiSrc/constants' import { KeyViewType } from 'uiSrc/slices/interfaces/keys' +import { checkIsAnalyticsGranted } from 'uiSrc/telemetry/checkAnalytics' import { ITelemetrySendEvent, ITelemetrySendPageView, ITelemetryService, MatchType } from './interfaces' import { TelemetryEvent } from './events' import { NON_TRACKING_ANONYMOUS_ID, SegmentTelemetryService } from './segment' @@ -29,10 +28,6 @@ const getTelemetryService = (apiKey: string): ITelemetryService => { return telemetryService } -// Check is user give access to collect his events -const checkIsAnalyticsGranted = () => - !!get(store.getState(), 'user.settings.config.agreements.analytics', false) - // Telemetry doesn't watch on sending anonymousId like arg of function. Only look at localStorage const setAnonymousId = (isAnalyticsGranted: boolean) => { const anonymousId = isAnalyticsGranted diff --git a/redisinsight/ui/src/utils/test-utils.tsx b/redisinsight/ui/src/utils/test-utils.tsx index 3bddd5e330..103771e1d1 100644 --- a/redisinsight/ui/src/utils/test-utils.tsx +++ b/redisinsight/ui/src/utils/test-utils.tsx @@ -160,6 +160,13 @@ jest.mock( () => ({ children }) => children({ height: 600, width: 600 }) ) +jest.mock( + 'uiSrc/telemetry/checkAnalytics', + () => ({ + checkIsAnalyticsGranted: jest.fn() + }) +) + export const localStorageMock = { getItem: jest.fn(), setItem: jest.fn(),