summaryrefslogtreecommitdiff
path: root/spec/frontend/__helpers__/tracking_helper.js
blob: 08ba5a6628ea2143cb29cb40061d0a10e6fa90cc (plain)
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
import Tracking from '~/tracking';

export default Tracking;

let document;
let handlers;

export function mockTracking(category = '_category_', documentOverride, spyMethod) {
  document = documentOverride || window.document;
  window.snowplow = () => {};
  handlers = Tracking.bindDocument(category, document);
  return spyMethod ? spyMethod(Tracking, 'event') : null;
}

export function unmockTracking() {
  window.snowplow = undefined;
  handlers.forEach((event) => document.removeEventListener(event.name, event.func));
}

export function triggerEvent(selectorOrEl, eventName = 'click') {
  const event = new Event(eventName, { bubbles: true });
  const el = typeof selectorOrEl === 'string' ? document.querySelector(selectorOrEl) : selectorOrEl;

  el.dispatchEvent(event);
}