• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mendersoftware / gui / 1113439055

19 Dec 2023 09:01PM UTC coverage: 82.752% (-17.2%) from 99.964%
1113439055

Pull #4258

gitlab-ci

mender-test-bot
chore: Types update

Signed-off-by: Mender Test Bot <mender@northern.tech>
Pull Request #4258: chore: Types update

4326 of 6319 branches covered (0.0%)

8348 of 10088 relevant lines covered (82.75%)

189.39 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

54.76
/src/js/tracking.js
1
import ReactGA4 from 'react-ga4';
2

3
const cookieConsentCSS = 'https://cdn.jsdelivr.net/npm/cookieconsent@3/build/cookieconsent.min.css';
183✔
4
const cookieConsentJS = 'https://cdn.jsdelivr.net/npm/cookieconsent@3/build/cookieconsent.min.js';
183✔
5

6
const ReactGA = ReactGA4.default;
183✔
7

8
class Tracker {
9
  constructor() {
10
    this.initialized = false;
183✔
11
    this.trackingEnabled = true;
183✔
12
    this.currentPageView = null;
183✔
13
    this.currentOrganizationUser = null;
183✔
14
  }
15
  cookieconsent() {
16
    return new Promise(resolve => {
2✔
17
      const style = document.createElement('link');
2✔
18
      style.href = cookieConsentCSS;
2✔
19
      style.rel = 'stylesheet';
2✔
20
      style.async = true;
2✔
21
      document.head.appendChild(style);
2✔
22
      //
23
      const script = document.createElement('script');
2✔
24
      script.src = cookieConsentJS;
2✔
25
      script.async = false;
2✔
26
      script.addEventListener('load', () => {
2✔
27
        window.cookieconsent.initialise({
×
28
          palette: {
29
            popup: {
30
              background: '#5d0f43',
31
              text: '#ffffff'
32
            },
33
            button: {
34
              background: '#73a4ad',
35
              text: '#ffffff'
36
            }
37
          },
38
          position: 'bottom-left',
39
          type: 'opt-out',
40
          content: {
41
            message: 'We use cookies to analyze our traffic so we can improve our website and give you a better experience.',
42
            link: 'View our cookie policy',
43
            href: 'https://northern.tech/legal/cookies'
44
          },
45
          autoOpen: true,
46
          revokable: false,
47
          law: {
48
            regionalLaw: false
49
          },
50
          onStatusChange: status => {
51
            let hasConsented = status == 'allow';
×
52
            resolve({ trackingConsentGiven: hasConsented });
×
53
          }
54
        });
55
      });
56
      document.body.appendChild(script);
2✔
57
    });
58
  }
59
  exception(error) {
60
    if (this.initialized && this.trackingEnabled) {
×
61
      ReactGA.event('error', error);
×
62
    }
63
  }
64
  event(data) {
65
    if (this.initialized && this.trackingEnabled) {
41!
66
      ReactGA.event(data);
×
67
    }
68
  }
69
  initialize(trackingCode) {
70
    if (this.initialized && this.trackingEnabled) {
×
71
      return false;
×
72
    }
73
    ReactGA.initialize(trackingCode);
×
74
    this.initialized = true;
×
75
    return true;
×
76
  }
77
  pageview(data) {
78
    if (data) {
3!
79
      this.currentPageView = data;
3✔
80
    }
81
  }
82
  set(value) {
83
    if (this.initialized && this.trackingEnabled) {
×
84
      ReactGA.set(value);
×
85
    }
86
  }
87
  setOrganizationUser(organization, user) {
88
    if (this.initialized && this.trackingEnabled && this.currentOrganizationUser != { organization, user }) {
×
89
      this.currentOrganizationUser = { organization, user };
×
90
      this.set({ dimension1: organization.plan });
×
91
      this.set({ dimension2: organization.id });
×
92
      this.set({ dimension3: user.id });
×
93
      this.set({ userId: user.id });
×
94
    }
95
  }
96
  setTrackingEnabled(trackingEnabled) {
97
    this.trackingEnabled = trackingEnabled;
8✔
98
  }
99
}
100

101
const Tracking = new Tracker();
183✔
102
export default Tracking;
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc