All files / app/assets/javascripts/design_management/utils tracking.js

100% Statements 9/9
100% Branches 4/4
100% Functions 4/4
100% Lines 9/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60        4x       4x   4x           4x                         20x   20x                             2x       1x             18x    
import Api from '~/api';
import Tracking from '~/tracking';
 
// Snowplow tracking constants
const DESIGN_TRACKING_CONTEXT_SCHEMAS = {
  VIEW_DESIGN_SCHEMA: 'iglu:com.gitlab/design_management_context/jsonschema/1-0-0',
};
 
export const DESIGN_TRACKING_PAGE_NAME = 'projects:issues:design';
 
export const DESIGN_SNOWPLOW_EVENT_TYPES = {
  VIEW_DESIGN: 'view_design',
  CREATE_DESIGN: 'create_design',
  UPDATE_DESIGN: 'update_design',
};
 
export const DESIGN_SERVICE_PING_EVENT_TYPES = {
  DESIGN_ACTION: 'design_action',
};
 
/**
 * Track "design detail" view in Snowplow
 */
export function trackDesignDetailView(
  referer = '',
  owner = '',
  designVersion = 1,
  latestVersion = false,
) {
  const eventName = DESIGN_SNOWPLOW_EVENT_TYPES.VIEW_DESIGN;
 
  Tracking.event(DESIGN_TRACKING_PAGE_NAME, eventName, {
    label: eventName,
    context: {
      schema: DESIGN_TRACKING_CONTEXT_SCHEMAS.VIEW_DESIGN_SCHEMA,
      data: {
        'design-version-number': designVersion,
        'design-is-current-version': latestVersion,
        'internal-object-referrer': referer,
        'design-collection-owner': owner,
      },
    },
  });
}
 
export function trackDesignCreate() {
  return Tracking.event(DESIGN_TRACKING_PAGE_NAME, DESIGN_SNOWPLOW_EVENT_TYPES.CREATE_DESIGN);
}
 
export function trackDesignUpdate() {
  return Tracking.event(DESIGN_TRACKING_PAGE_NAME, DESIGN_SNOWPLOW_EVENT_TYPES.UPDATE_DESIGN);
}
 
/**
 * Track "design detail" view via service ping
 */
export function servicePingDesignDetailView() {
  Api.trackRedisHllUserEvent(DESIGN_SERVICE_PING_EVENT_TYPES.DESIGN_ACTION);
}