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

mendersoftware / gui / 1350829378

27 Jun 2024 01:46PM UTC coverage: 83.494% (-16.5%) from 99.965%
1350829378

Pull #4465

gitlab-ci

mzedel
chore: test fixes

Signed-off-by: Manuel Zedel <manuel.zedel@northern.tech>
Pull Request #4465: MEN-7169 - feat: added multi sorting capabilities to devices view

4506 of 6430 branches covered (70.08%)

81 of 100 new or added lines in 14 files covered. (81.0%)

1661 existing lines in 163 files now uncovered.

8574 of 10269 relevant lines covered (83.49%)

160.6 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';
184✔
4
const cookieConsentJS = 'https://cdn.jsdelivr.net/npm/cookieconsent@3/build/cookieconsent.min.js';
184✔
5

6
const ReactGA = ReactGA4.default;
184✔
7

8
class Tracker {
9
  constructor() {
10
    this.initialized = false;
184✔
11
    this.trackingEnabled = true;
184✔
12
    this.currentPageView = null;
184✔
13
    this.currentOrganizationUser = null;
184✔
14
  }
15
  cookieconsent() {
16
    return new Promise(resolve => {
3✔
17
      const style = document.createElement('link');
3✔
18
      style.href = cookieConsentCSS;
3✔
19
      style.rel = 'stylesheet';
3✔
20
      style.async = true;
3✔
21
      document.head.appendChild(style);
3✔
22
      //
23
      const script = document.createElement('script');
3✔
24
      script.src = cookieConsentJS;
3✔
25
      script.async = false;
3✔
26
      script.addEventListener('load', () => {
3✔
UNCOV
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 => {
UNCOV
51
            let hasConsented = status == 'allow';
×
UNCOV
52
            resolve({ trackingConsentGiven: hasConsented });
×
53
          }
54
        });
55
      });
56
      document.body.appendChild(script);
3✔
57
    });
58
  }
59
  exception(error) {
UNCOV
60
    if (this.initialized && this.trackingEnabled) {
×
UNCOV
61
      ReactGA.event('error', error);
×
62
    }
63
  }
64
  event(data) {
65
    if (this.initialized && this.trackingEnabled) {
41!
UNCOV
66
      ReactGA.event(data);
×
67
    }
68
  }
69
  initialize(trackingCode) {
UNCOV
70
    if (this.initialized && this.trackingEnabled) {
×
UNCOV
71
      return false;
×
72
    }
UNCOV
73
    ReactGA.initialize(trackingCode);
×
UNCOV
74
    this.initialized = true;
×
UNCOV
75
    return true;
×
76
  }
77
  pageview(data) {
78
    if (data) {
6!
79
      this.currentPageView = data;
6✔
80
    }
81
  }
82
  set(value) {
UNCOV
83
    if (this.initialized && this.trackingEnabled) {
×
UNCOV
84
      ReactGA.set(value);
×
85
    }
86
  }
87
  setOrganizationUser(organization, user) {
UNCOV
88
    if (this.initialized && this.trackingEnabled && this.currentOrganizationUser != { organization, user }) {
×
UNCOV
89
      this.currentOrganizationUser = { organization, user };
×
UNCOV
90
      this.set({ dimension1: organization.plan });
×
UNCOV
91
      this.set({ dimension2: organization.id });
×
UNCOV
92
      this.set({ dimension3: user.id });
×
UNCOV
93
      this.set({ userId: user.id });
×
94
    }
95
  }
96
  setTrackingEnabled(trackingEnabled) {
97
    this.trackingEnabled = trackingEnabled;
12✔
98
  }
99
}
100

101
const Tracking = new Tracker();
184✔
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