summaryrefslogtreecommitdiff
path: root/spec/frontend/design_management_new/utils/tracking_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/design_management_new/utils/tracking_spec.js')
-rw-r--r--spec/frontend/design_management_new/utils/tracking_spec.js59
1 files changed, 59 insertions, 0 deletions
diff --git a/spec/frontend/design_management_new/utils/tracking_spec.js b/spec/frontend/design_management_new/utils/tracking_spec.js
new file mode 100644
index 00000000000..ac7267642cb
--- /dev/null
+++ b/spec/frontend/design_management_new/utils/tracking_spec.js
@@ -0,0 +1,59 @@
+import { mockTracking } from 'helpers/tracking_helper';
+import { trackDesignDetailView } from '~/design_management_new/utils/tracking';
+
+function getTrackingSpy(key) {
+ return mockTracking(key, undefined, jest.spyOn);
+}
+
+describe('Tracking Events', () => {
+ describe('trackDesignDetailView', () => {
+ const eventKey = 'projects:issues:design';
+ const eventName = 'view_design';
+
+ it('trackDesignDetailView fires a tracking event when called', () => {
+ const trackingSpy = getTrackingSpy(eventKey);
+
+ trackDesignDetailView();
+
+ expect(trackingSpy).toHaveBeenCalledWith(
+ eventKey,
+ eventName,
+ expect.objectContaining({
+ label: eventName,
+ context: {
+ schema: expect.any(String),
+ data: {
+ 'design-version-number': 1,
+ 'design-is-current-version': false,
+ 'internal-object-referrer': '',
+ 'design-collection-owner': '',
+ },
+ },
+ }),
+ );
+ });
+
+ it('trackDesignDetailView allows to customize the value payload', () => {
+ const trackingSpy = getTrackingSpy(eventKey);
+
+ trackDesignDetailView('from-a-test', 'test', 100, true);
+
+ expect(trackingSpy).toHaveBeenCalledWith(
+ eventKey,
+ eventName,
+ expect.objectContaining({
+ label: eventName,
+ context: {
+ schema: expect.any(String),
+ data: {
+ 'design-version-number': 100,
+ 'design-is-current-version': true,
+ 'internal-object-referrer': 'from-a-test',
+ 'design-collection-owner': 'test',
+ },
+ },
+ }),
+ );
+ });
+ });
+});