diff --git a/demo/src/client/pages/Features/TracingInstrumentation.tsx b/demo/src/client/pages/Features/TracingInstrumentation.tsx index 9f1754889..4e2bbf6f2 100644 --- a/demo/src/client/pages/Features/TracingInstrumentation.tsx +++ b/demo/src/client/pages/Features/TracingInstrumentation.tsx @@ -1,7 +1,7 @@ import { SpanStatusCode } from '@opentelemetry/api'; import { Button, ButtonGroup } from 'react-bootstrap'; -import { UserActionSeverity } from '@grafana/faro-core'; +import { UserActionImportance } from '@grafana/faro-core'; import { faro } from '@grafana/faro-react'; export function TracingInstrumentation() { @@ -11,14 +11,17 @@ export function TracingInstrumentation() { 'fetch-success', {}, { - severity: UserActionSeverity.Critical, + importance: UserActionImportance.Critical, } ); fetch('/'); }; const xhrSuccess = () => { - faro.api.startUserAction('xhr-success', undefined, { severity: UserActionSeverity.Critical, triggerName: 'foo' }); + faro.api.startUserAction('xhr-success', undefined, { + importance: UserActionImportance.Critical, + triggerName: 'foo', + }); const xhr = new XMLHttpRequest(); xhr.open('GET', '/'); xhr.send(); diff --git a/packages/core/src/api/index.ts b/packages/core/src/api/index.ts index 5de6643a0..48c9f0a6b 100644 --- a/packages/core/src/api/index.ts +++ b/packages/core/src/api/index.ts @@ -23,7 +23,8 @@ export type { MeasurementEvent, MeasurementsAPI, PushMeasurementOptions } from ' export type { MetaAPI } from './meta'; export { - UserActionSeverity, + UserActionImportance, + type UserActionImportanceType, UserActionState, type UserActionInterface, type UserActionInternalInterface, diff --git a/packages/core/src/api/userActions/const.ts b/packages/core/src/api/userActions/const.ts index 31c9a61f2..c674c4795 100644 --- a/packages/core/src/api/userActions/const.ts +++ b/packages/core/src/api/userActions/const.ts @@ -2,9 +2,11 @@ export const userActionStartByApiCallEventName = 'faroApiCall'; export const userActionStart = 'user_action_start'; -export enum UserActionSeverity { - Normal = 'normal', - Critical = 'critical', -} +export const UserActionImportance = { + Normal: 'normal', + Critical: 'critical', +} as const; + +export type UserActionImportanceType = (typeof UserActionImportance)[keyof typeof UserActionImportance]; export const userActionEventName = 'faro.user.action'; diff --git a/packages/core/src/api/userActions/index.ts b/packages/core/src/api/userActions/index.ts index 4dbbc0454..fa43bd21f 100644 --- a/packages/core/src/api/userActions/index.ts +++ b/packages/core/src/api/userActions/index.ts @@ -1,9 +1,10 @@ +export { UserActionImportance } from './const'; +export { type UserActionImportance as UserActionImportanceType } from './const'; export { type UserActionsAPI, UserActionState, type UserActionInterface, type UserActionInternalInterface, } from './types'; -export { UserActionSeverity } from './const'; export { initializeUserActionsAPI, userActionsMessageBus } from './initialize'; diff --git a/packages/core/src/api/userActions/initialize.test.ts b/packages/core/src/api/userActions/initialize.test.ts index 182fc1a61..9a8066f37 100644 --- a/packages/core/src/api/userActions/initialize.test.ts +++ b/packages/core/src/api/userActions/initialize.test.ts @@ -1,4 +1,4 @@ -import { faro, UserActionSeverity } from '../..'; +import { faro, UserActionImportance } from '../..'; import { mockConfig, mockInternalLogger } from '../../testUtils'; import { mockTransports } from '../apiTestHelpers'; @@ -29,6 +29,7 @@ describe('initializeUserActionsAPI', () => { }); internalLogger = mockInternalLogger; api = initializeUserActionsAPI({ transports, config, internalLogger }); + jest.resetAllMocks(); }); afterEach(() => { @@ -45,9 +46,9 @@ describe('initializeUserActionsAPI', () => { expect(api.getActiveUserAction()).toBe(action); }); - it('startUserAction has custom severity and trigger set', () => { + it('startUserAction has custom importance and trigger set', () => { const action = api.startUserAction('first', undefined, { - severity: UserActionSeverity.Critical, + importance: UserActionImportance.Critical, triggerName: 'foo', }); expect(action).toBeInstanceOf(UserAction); @@ -60,7 +61,7 @@ describe('initializeUserActionsAPI', () => { expect(faro.api.pushEvent).toHaveBeenCalledTimes(1); expect(faro.api.pushEvent).toHaveBeenCalledWith( expect.any(String), - expect.objectContaining({ userActionSeverity: 'critical', userActionTrigger: 'foo' }), + expect.objectContaining({ userActionImportance: 'critical', userActionTrigger: 'foo' }), undefined, expect.any(Object) ); @@ -88,7 +89,7 @@ describe('initializeUserActionsAPI', () => { const action = api.startUserAction( 'test-action', { foo: 'bar' }, - { severity: UserActionSeverity.Critical, triggerName: 'foo' } + { importance: UserActionImportance.Critical, triggerName: 'foo' } ); (action as unknown as UserActionInternalInterface)?.end(); @@ -97,7 +98,7 @@ describe('initializeUserActionsAPI', () => { expect.objectContaining({ userActionName: 'test-action', userActionDuration: expect.any(String), - userActionSeverity: 'critical', + userActionImportance: 'critical', userActionStartTime: expect.any(String), userActionEndTime: expect.any(String), userActionTrigger: 'foo', diff --git a/packages/core/src/api/userActions/initialize.ts b/packages/core/src/api/userActions/initialize.ts index d1a60b159..d1cf23b53 100644 --- a/packages/core/src/api/userActions/initialize.ts +++ b/packages/core/src/api/userActions/initialize.ts @@ -2,7 +2,7 @@ import { type InternalLogger, type TransportItem, type Transports } from '../..' import type { Config } from '../../config'; import { Observable } from '../../utils/reactive'; -import { UserActionSeverity, userActionStart, userActionStartByApiCallEventName } from './const'; +import { UserActionImportance, userActionStart, userActionStartByApiCallEventName } from './const'; import { type StartUserActionOptions, type UserActionInterface, @@ -46,7 +46,7 @@ export function initializeUserActionsAPI({ transports, attributes, trigger: options?.triggerName || userActionStartByApiCallEventName, - severity: options?.severity || UserActionSeverity.Normal, + importance: options?.importance || UserActionImportance.Normal, trackUserActionsExcludeItem, }); userAction diff --git a/packages/core/src/api/userActions/types.ts b/packages/core/src/api/userActions/types.ts index 14e241710..193fb8505 100644 --- a/packages/core/src/api/userActions/types.ts +++ b/packages/core/src/api/userActions/types.ts @@ -1,6 +1,6 @@ import { type TransportItem } from '../../transports'; -import { UserActionSeverity, userActionStartByApiCallEventName } from './const'; +import { type UserActionImportanceType, userActionStartByApiCallEventName } from './const'; export enum UserActionState { Started, @@ -50,7 +50,7 @@ export type EndUserActionProps = { export type StartUserActionOptions = { triggerName?: string; - severity?: UserActionSeverity; + importance?: UserActionImportanceType; }; export interface UserActionsAPI { diff --git a/packages/core/src/api/userActions/userAction.ts b/packages/core/src/api/userActions/userAction.ts index c56e9ce86..c3b2ae99d 100644 --- a/packages/core/src/api/userActions/userAction.ts +++ b/packages/core/src/api/userActions/userAction.ts @@ -6,7 +6,7 @@ import { ItemBuffer } from '../ItemBuffer'; import { type MeasurementEvent } from '../measurements'; import { type APIEvent } from '../types'; -import { userActionEventName, UserActionSeverity } from './const'; +import { userActionEventName, UserActionImportance, type UserActionImportanceType } from './const'; import { type UserActionInternalInterface, UserActionState, type UserActionTransportItemBuffer } from './types'; export default class UserAction @@ -18,7 +18,7 @@ export default class UserAction attributes?: Record; parentId: string; trigger: string; - severity: UserActionSeverity; + importance: UserActionImportanceType; startTime?: number; trackUserActionsExcludeItem?: (item: TransportItem) => boolean; @@ -33,7 +33,7 @@ export default class UserAction transports, attributes, trackUserActionsExcludeItem, - severity = UserActionSeverity.Normal, + importance = UserActionImportance.Normal, }: { name: string; transports: Transports; @@ -41,7 +41,7 @@ export default class UserAction trigger: string; attributes?: Record; trackUserActionsExcludeItem?: (item: TransportItem) => boolean; - severity?: UserActionSeverity; + importance?: UserActionImportanceType; }) { super(); this.name = name; @@ -50,7 +50,7 @@ export default class UserAction this.trigger = trigger; this.parentId = parentId ?? this.id; this.trackUserActionsExcludeItem = trackUserActionsExcludeItem; - this.severity = severity; + this.importance = importance; this._itemBuffer = new ItemBuffer(); this._transports = transports; @@ -130,7 +130,7 @@ export default class UserAction userActionEndTime: endTime.toString(), userActionDuration: duration.toString(), userActionTrigger: this.trigger!, - userActionSeverity: this.severity, + userActionImportance: this.importance, ...stringifyObjectValues(this.attributes), }, undefined, diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index edd8e6fe6..a0cbc2d0e 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -2,7 +2,8 @@ export { defaultExceptionType, defaultLogArgsSerializer, defaultErrorArgsSerializer, - UserActionSeverity, + UserActionImportance, + type UserActionImportanceType, UserActionState, userActionsMessageBus, } from './api'; diff --git a/packages/react/src/index.ts b/packages/react/src/index.ts index 9178a1e00..ef741ee64 100644 --- a/packages/react/src/index.ts +++ b/packages/react/src/index.ts @@ -193,5 +193,5 @@ export type { Transports, UnpatchedConsole, ExceptionEventExtended, - UserActionSeverity, + UserActionImportance, } from '@grafana/faro-web-sdk'; diff --git a/packages/web-sdk/src/index.ts b/packages/web-sdk/src/index.ts index 08374739c..88af7b7d7 100644 --- a/packages/web-sdk/src/index.ts +++ b/packages/web-sdk/src/index.ts @@ -162,7 +162,7 @@ export type { TransportItemPayload, Transports, UnpatchedConsole, - UserActionSeverity, + UserActionImportance, } from '@grafana/faro-core'; export {