UNPKG

@grafana/faro-core

Version:
83 lines 4.08 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var __1 = require("../.."); var testUtils_1 = require("../../testUtils"); var apiTestHelpers_1 = require("../apiTestHelpers"); var const_1 = require("./const"); var initialize_1 = require("./initialize"); var userAction_1 = __importDefault(require("./userAction")); describe('initializeUserActionsAPI', function () { var transports; var config; var internalLogger; var api; var mockPushEvent; beforeEach(function () { transports = apiTestHelpers_1.mockTransports; // eslint-disable-next-line @typescript-eslint/no-unused-expressions config = (0, testUtils_1.mockConfig)({ userActionsInstrumentation: { excludeItem: jest.fn(), }, }); internalLogger = testUtils_1.mockInternalLogger; mockPushEvent = jest.fn(); api = (0, initialize_1.initializeUserActionsAPI)({ transports: transports, config: config, internalLogger: internalLogger, pushEvent: mockPushEvent }); jest.resetAllMocks(); }); afterEach(function () { jest.resetAllMocks(); }); it('getActiveUserAction returns undefined before any action is created', function () { expect(api.getActiveUserAction()).toBeUndefined(); }); it('startUserAction returns a new UserAction when none exists', function () { var action = api.startUserAction('first'); expect(action).toBeInstanceOf(userAction_1.default); expect(api.getActiveUserAction()).toBe(action); }); it('startUserAction has custom importance and trigger set', function () { var action = api.startUserAction('first', undefined, { importance: __1.UserActionImportance.Critical, triggerName: 'foo', }); expect(action).toBeInstanceOf(userAction_1.default); var activeAction = api.getActiveUserAction(); expect(activeAction).toBe(action); activeAction === null || activeAction === void 0 ? void 0 : activeAction.end(); expect(mockPushEvent).toHaveBeenCalledTimes(1); expect(mockPushEvent).toHaveBeenCalledWith(expect.any(String), expect.objectContaining({ userActionImportance: 'critical', userActionTrigger: 'foo' }), undefined, expect.any(Object)); }); it('subsequent startUserAction calls will return undefined as long as there is an action running', function () { api.startUserAction('A'); var a2 = api.startUserAction('B'); expect(a2).not.toBeDefined(); }); it('getActiveUserAction returns undefined if the action is ended', function () { var action = api.startUserAction('first'); action === null || action === void 0 ? void 0 : action.end(); expect(api.getActiveUserAction()).toBeUndefined(); }); it('getActiveUserAction returns undefined if the action is cancelled', function () { var action = api.startUserAction('first'); action === null || action === void 0 ? void 0 : action.cancel(); expect(api.getActiveUserAction()).toBeUndefined(); }); it('user action has proper event name and contains all necessary attributes', function () { var action = api.startUserAction('test-action', { foo: 'bar' }, { importance: __1.UserActionImportance.Critical, triggerName: 'foo' }); action === null || action === void 0 ? void 0 : action.end(); expect(mockPushEvent).toHaveBeenCalledWith(const_1.userActionEventName, expect.objectContaining({ userActionName: 'test-action', userActionDuration: expect.any(String), userActionImportance: 'critical', userActionStartTime: expect.any(String), userActionEndTime: expect.any(String), userActionTrigger: 'foo', foo: 'bar', }), undefined, expect.any(Object)); }); }); //# sourceMappingURL=initialize.test.js.map