summaryrefslogtreecommitdiff
path: root/spec/frontend/pages/admin/application_settings/metrics_and_profiling/usage_statistics_spec.js
blob: 858c7b76ac8615693b5e2b77c29924fe6835ea94 (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
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
import initSetHelperText, {
  HELPER_TEXT_SERVICE_PING_DISABLED,
  HELPER_TEXT_SERVICE_PING_ENABLED,
} from '~/pages/admin/application_settings/metrics_and_profiling/usage_statistics';

describe('UsageStatistics', () => {
  const FIXTURE = 'application_settings/usage.html';
  let usagePingCheckBox;
  let usagePingFeaturesCheckBox;
  let usagePingFeaturesLabel;
  let usagePingFeaturesHelperText;

  beforeEach(() => {
    loadFixtures(FIXTURE);
    initSetHelperText();
    usagePingCheckBox = document.getElementById('application_setting_usage_ping_enabled');
    usagePingFeaturesCheckBox = document.getElementById(
      'application_setting_usage_ping_features_enabled',
    );
    usagePingFeaturesLabel = document.getElementById('service_ping_features_label');
    usagePingFeaturesHelperText = document.getElementById('service_ping_features_helper_text');
  });

  const expectEnabledUsagePingFeaturesCheckBox = () => {
    expect(usagePingFeaturesCheckBox.classList.contains('gl-cursor-not-allowed')).toBe(false);
    expect(usagePingFeaturesHelperText.textContent).toEqual(HELPER_TEXT_SERVICE_PING_ENABLED);
  };

  const expectDisabledUsagePingFeaturesCheckBox = () => {
    expect(usagePingFeaturesLabel.classList.contains('gl-cursor-not-allowed')).toBe(true);
    expect(usagePingFeaturesHelperText.textContent).toEqual(HELPER_TEXT_SERVICE_PING_DISABLED);
  };

  describe('Registration Features checkbox', () => {
    it('is disabled when Usage Ping checkbox is unchecked', () => {
      expect(usagePingCheckBox.checked).toBe(false);
      expectDisabledUsagePingFeaturesCheckBox();
    });

    it('is enabled when Usage Ping checkbox is checked', () => {
      usagePingCheckBox.click();
      expect(usagePingCheckBox.checked).toBe(true);
      expectEnabledUsagePingFeaturesCheckBox();
    });

    it('is switched to disabled when Usage Ping checkbox is unchecked ', () => {
      usagePingCheckBox.click();
      usagePingFeaturesCheckBox.click();
      expectEnabledUsagePingFeaturesCheckBox();

      usagePingCheckBox.click();
      expect(usagePingCheckBox.checked).toBe(false);
      expect(usagePingFeaturesCheckBox.checked).toBe(false);
      expectDisabledUsagePingFeaturesCheckBox();
    });
  });
});