diff --git a/packages/insomnia-app/app/common/__mocks__/analytics.ts b/packages/insomnia-app/app/common/__mocks__/analytics.ts index 2fc6eabde0..399ed08bac 100644 --- a/packages/insomnia-app/app/common/__mocks__/analytics.ts +++ b/packages/insomnia-app/app/common/__mocks__/analytics.ts @@ -1,4 +1,5 @@ // WARNING: changing this to `export default` will break the mock and be incredibly hard to debug. Ask me how I know. -const trackEvent = jest.fn(); -const trackSegmentEvent = jest.fn(); -module.exports = { trackEvent, trackSegmentEvent }; +const _analytics = jest.requireActual('../analytics'); +_analytics.trackEvent = jest.fn(); +_analytics.trackSegmentEvent = jest.fn(); +module.exports = _analytics; diff --git a/packages/insomnia-app/app/common/analytics.ts b/packages/insomnia-app/app/common/analytics.ts index 4eeb5349ce..0b8956693c 100644 --- a/packages/insomnia-app/app/common/analytics.ts +++ b/packages/insomnia-app/app/common/analytics.ts @@ -19,7 +19,6 @@ import { isDevelopment, } from './constants'; import { getScreenResolution, getUserLanguage, getViewportSize } from './electron-helpers'; -import { SegmentEvent } from './segment-event'; const DIMENSION_PLATFORM = 1; const DIMENSION_VERSION = 2; @@ -115,6 +114,23 @@ export async function getDeviceId() { let segmentClient: Analytics | null = null; +export enum SegmentEvent { + collectionCreate = 'Collection Created', + documentCreate = 'Document Created', + pluginExportLoadAllWokspace = 'Plugin export loading all workspace', + pluginExportLoadWorkspacesInSpace = 'Plugin export loading workspaces for active space', + requestCreate = 'Request Created', + requestExecute = 'Request Executed', + spaceLocalCreate = 'Local Space Created', + spaceLocalDelete = 'Local Space Deleted', + testSuiteCreate = 'Test Suite Created', + testSuiteDelete = 'Test Suite Deleted', + unitTestCreate = 'Unit Test Created', + unitTestDelete = 'Unit Test Deleted', + unitTestRun = 'Ran Individual Unit Test', + unitTestRunAll = 'Ran All Unit Tests', +} + export async function trackSegmentEvent(event: SegmentEvent, properties?: Record) { const settings = await models.settings.getOrCreate(); diff --git a/packages/insomnia-app/app/common/segment-event.ts b/packages/insomnia-app/app/common/segment-event.ts deleted file mode 100644 index e6c5ac267a..0000000000 --- a/packages/insomnia-app/app/common/segment-event.ts +++ /dev/null @@ -1,16 +0,0 @@ -export enum SegmentEvent { - collectionCreate = 'Collection Created', - documentCreate = 'Document Created', - pluginExportLoadAllWokspace = 'Plugin export loading all workspace', - pluginExportLoadWorkspacesInSpace = 'Plugin export loading workspaces for active space', - requestCreate = 'Request Created', - requestExecute = 'Request Executed', - spaceLocalCreate = 'Local Space Created', - spaceLocalDelete = 'Local Space Deleted', - testSuiteCreate = 'Test Suite Created', - testSuiteDelete = 'Test Suite Deleted', - unitTestCreate = 'Unit Test Created', - unitTestDelete = 'Unit Test Deleted', - unitTestRun = 'Ran Individual Unit Test', - unitTestRunAll = 'Ran All Unit Tests', -} diff --git a/packages/insomnia-app/app/network/grpc/index.ts b/packages/insomnia-app/app/network/grpc/index.ts index 96b1be42f3..50bd4048af 100644 --- a/packages/insomnia-app/app/network/grpc/index.ts +++ b/packages/insomnia-app/app/network/grpc/index.ts @@ -2,8 +2,7 @@ import * as grpc from '@grpc/grpc-js'; import { Call, ServiceError } from '@grpc/grpc-js'; import { ServiceClient } from '@grpc/grpc-js/build/src/make-client'; -import { trackSegmentEvent } from '../../common/analytics'; -import { SegmentEvent } from '../../common/segment-event'; +import { SegmentEvent, trackSegmentEvent } from '../../common/analytics'; import * as models from '../../models'; import type { GrpcRequest } from '../../models/grpc-request'; import callCache from './call-cache'; diff --git a/packages/insomnia-app/app/plugins/context/data.ts b/packages/insomnia-app/app/plugins/context/data.ts index 2f555e5791..b629f80b5d 100644 --- a/packages/insomnia-app/app/plugins/context/data.ts +++ b/packages/insomnia-app/app/plugins/context/data.ts @@ -1,8 +1,7 @@ -import { trackSegmentEvent } from '../../common/analytics'; +import { SegmentEvent, trackSegmentEvent } from '../../common/analytics'; import { exportWorkspacesData, exportWorkspacesHAR } from '../../common/export'; import type { ImportRawConfig } from '../../common/import'; import { importRaw, importUri } from '../../common/import'; -import { SegmentEvent } from '../../common/segment-event'; import * as models from '../../models'; import { BASE_SPACE_ID } from '../../models/space'; import type { Workspace, WorkspaceScope } from '../../models/workspace'; diff --git a/packages/insomnia-app/app/ui/components/wrapper-unit-test.tsx b/packages/insomnia-app/app/ui/components/wrapper-unit-test.tsx index f912b74426..18823f2d0f 100644 --- a/packages/insomnia-app/app/ui/components/wrapper-unit-test.tsx +++ b/packages/insomnia-app/app/ui/components/wrapper-unit-test.tsx @@ -11,10 +11,9 @@ import { import { generate, runTests, Test } from 'insomnia-testing'; import React, { PureComponent, ReactNode } from 'react'; -import { trackSegmentEvent } from '../../common/analytics'; +import { SegmentEvent, trackSegmentEvent } from '../../common/analytics'; import type { GlobalActivity } from '../../common/constants'; import { AUTOBIND_CFG } from '../../common/constants'; -import { SegmentEvent } from '../../common/segment-event'; import { getSendRequestCallback } from '../../common/send-request'; import * as models from '../../models'; import { isRequest } from '../../models/request'; diff --git a/packages/insomnia-app/app/ui/containers/app.tsx b/packages/insomnia-app/app/ui/containers/app.tsx index b28a5c5e61..5ab6b673e9 100644 --- a/packages/insomnia-app/app/ui/containers/app.tsx +++ b/packages/insomnia-app/app/ui/containers/app.tsx @@ -10,7 +10,7 @@ import { connect } from 'react-redux'; import { Action, bindActionCreators, Dispatch } from 'redux'; import { parse as urlParse } from 'url'; -import { trackSegmentEvent } from '../../common/analytics'; +import { SegmentEvent, trackSegmentEvent } from '../../common/analytics'; import { ACTIVITY_HOME, ACTIVITY_MIGRATION, @@ -42,7 +42,6 @@ import { } from '../../common/misc'; import * as render from '../../common/render'; import { RenderContextAndKeys } from '../../common/render'; -import { SegmentEvent } from '../../common/segment-event'; import { sortMethodMap } from '../../common/sorting'; import * as models from '../../models'; import { isEnvironment } from '../../models/environment'; diff --git a/packages/insomnia-app/app/ui/redux/modules/__tests__/git.test.tsx b/packages/insomnia-app/app/ui/redux/modules/__tests__/git.test.tsx index 16ff04a759..529d8550af 100644 --- a/packages/insomnia-app/app/ui/redux/modules/__tests__/git.test.tsx +++ b/packages/insomnia-app/app/ui/redux/modules/__tests__/git.test.tsx @@ -8,9 +8,8 @@ import { mocked } from 'ts-jest/utils'; import { globalBeforeEach } from '../../../../__jest__/before-each'; import { reduxStateForTest } from '../../../../__jest__/redux-state-for-test'; -import { trackEvent, trackSegmentEvent } from '../../../../common/analytics'; +import { SegmentEvent, trackEvent, trackSegmentEvent } from '../../../../common/analytics'; import { ACTIVITY_SPEC } from '../../../../common/constants'; -import { SegmentEvent } from '../../../../common/segment-event'; import * as models from '../../../../models'; import { gitRepositorySchema } from '../../../../models/__schemas__/model-schemas'; import { BASE_SPACE_ID } from '../../../../models/space'; diff --git a/packages/insomnia-app/app/ui/redux/modules/__tests__/space.test.js b/packages/insomnia-app/app/ui/redux/modules/__tests__/space.test.js index 3fcbbcb0f9..7ea6422d57 100644 --- a/packages/insomnia-app/app/ui/redux/modules/__tests__/space.test.js +++ b/packages/insomnia-app/app/ui/redux/modules/__tests__/space.test.js @@ -3,9 +3,8 @@ import thunk from 'redux-thunk'; import { globalBeforeEach } from '../../../../__jest__/before-each'; import { reduxStateForTest } from '../../../../__jest__/redux-state-for-test'; -import { trackEvent, trackSegmentEvent } from '../../../../common/analytics'; +import { SegmentEvent, trackEvent, trackSegmentEvent } from '../../../../common/analytics'; import { ACTIVITY_HOME } from '../../../../common/constants'; -import { SegmentEvent } from '../../../../common/segment-event'; import * as models from '../../../../models'; import { BASE_SPACE_ID } from '../../../../models/space'; import { getAndClearShowAlertMockArgs, getAndClearShowPromptMockArgs } from '../../../../test-utils'; diff --git a/packages/insomnia-app/app/ui/redux/modules/__tests__/workspace.test.ts b/packages/insomnia-app/app/ui/redux/modules/__tests__/workspace.test.ts index 8588ad8e14..77e6fc98c9 100644 --- a/packages/insomnia-app/app/ui/redux/modules/__tests__/workspace.test.ts +++ b/packages/insomnia-app/app/ui/redux/modules/__tests__/workspace.test.ts @@ -3,10 +3,9 @@ import thunk from 'redux-thunk'; import { globalBeforeEach } from '../../../../__jest__/before-each'; import { reduxStateForTest } from '../../../../__jest__/redux-state-for-test'; -import { trackEvent, trackSegmentEvent } from '../../../../common/analytics'; +import { SegmentEvent, trackEvent, trackSegmentEvent } from '../../../../common/analytics'; import { ACTIVITY_DEBUG, ACTIVITY_SPEC, ACTIVITY_UNIT_TEST } from '../../../../common/constants'; import { database } from '../../../../common/database'; -import { SegmentEvent } from '../../../../common/segment-event'; import * as models from '../../../../models'; import { ApiSpec } from '../../../../models/api-spec'; import { CookieJar } from '../../../../models/cookie-jar'; diff --git a/packages/insomnia-app/app/ui/redux/modules/space.ts b/packages/insomnia-app/app/ui/redux/modules/space.ts index 2243dd3ae6..6a37282aea 100644 --- a/packages/insomnia-app/app/ui/redux/modules/space.ts +++ b/packages/insomnia-app/app/ui/redux/modules/space.ts @@ -1,6 +1,5 @@ -import { trackEvent, trackSegmentEvent } from '../../../common/analytics'; +import { SegmentEvent, trackEvent, trackSegmentEvent } from '../../../common/analytics'; import { ACTIVITY_HOME } from '../../../common/constants'; -import { SegmentEvent } from '../../../common/segment-event'; import { strings } from '../../../common/strings'; import * as models from '../../../models'; import { BASE_SPACE_ID, isRemoteSpace, Space } from '../../../models/space'; diff --git a/packages/insomnia-app/app/ui/redux/modules/workspace.ts b/packages/insomnia-app/app/ui/redux/modules/workspace.ts index b3737a88de..cd24e9bbdb 100644 --- a/packages/insomnia-app/app/ui/redux/modules/workspace.ts +++ b/packages/insomnia-app/app/ui/redux/modules/workspace.ts @@ -1,10 +1,9 @@ import { Dispatch } from 'redux'; import { RequireExactlyOne } from 'type-fest'; -import { trackEvent, trackSegmentEvent } from '../../../common/analytics'; +import { SegmentEvent, trackEvent, trackSegmentEvent } from '../../../common/analytics'; import { ACTIVITY_DEBUG, ACTIVITY_SPEC, GlobalActivity, isCollectionActivity, isDesignActivity } from '../../../common/constants'; import { database } from '../../../common/database'; -import { SegmentEvent } from '../../../common/segment-event'; import * as models from '../../../models'; import { isCollection, isDesign, Workspace, WorkspaceScope } from '../../../models/workspace'; import { showPrompt } from '../../components/modals';