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

mozilla / blurts-server / 2348f9a3-bb55-4215-aa7a-84b0b386afee

pending completion
2348f9a3-bb55-4215-aa7a-84b0b386afee

Pull #2968

circleci

Vincent
fixup! fixup! fixup! Allow scanning for exposures without logging in
Pull Request #2968: Allow scanning for exposures without logging in

282 of 1655 branches covered (17.04%)

Branch coverage included in aggregate %.

74 of 74 new or added lines in 6 files covered. (100.0%)

959 of 4451 relevant lines covered (21.55%)

3.59 hits per line

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

0.0
/src/views/partials/exposure-scan.js
1
/* This Source Code Form is subject to the terms of the Mozilla Public
2
 * License, v. 2.0. If a copy of the MPL was not distributed with this
3
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4

5
import { getMessage } from '../../utils/fluent.js'
6

7
/**
8
 * @typedef {object} PartialParameters
9
 * @property {string} csrfToken
10
 */
11

12
/**
13
 * @type {ViewPartial<PartialParameters>}
14
 */
15
export const exposureScan = data => `
×
16
  <template id="data" data-csrf-token="${data.csrfToken}"></template>
17
  <div id="exposure-scan-loading">
18
    ${getMessage('exposure-landing-result-loading')}
19
  </div>
20
  <template id="breach-template">
21
    <li class="exposure-scan-breach">
22
      <h3>
23
        <span class="exposure-scan-breach-company-logo"></span>
24
        <span class="exposure-scan-breach-company-name"></span>
25
      </h3>
26
      <div class="exposure-scan-breach-main">
27
        <dl>
28
          <div class="exposure-scan-breach-added">
29
            <dt>${getMessage('exposure-landing-result-card-added')}</dt>
30
            <dd></dd>
31
          </div>
32
          <div class="exposure-scan-breach-data">
33
            <dt>${getMessage('exposure-landing-result-card-data')}</dt>
34
            <dd></dd>
35
          </div>
36
        </dl>
37
      </div>
38
    </li>
39
  </template>
40
  <div hidden id="exposure-scan-results-overflow" class="exposure-scan-results" aria-live="polite">
41
    <header class="exposure-scan-hero">
42
      <div class="exposure-scan-hero-content">
43
        <p>${getMessage('exposure-landing-result-overflow-hero-lead')}</p>
44
        <a href='/user/breaches' data-cta-id='exposure-landing-result-overflow-cta-hero' class='button primary'>${getMessage('exposure-landing-result-overflow-hero-cta-label')}</a>
45
      </div>
46
      <img alt="" src="/images/exposure-scan-hero.svg" />
47
    </header>
48
    <ul class="exposure-scan-breaches">
49
    </ul>
50
    <footer class="exposure-scan-footer">
51
      <a href='/user/breaches' data-cta-id='exposure-landing-result-overflow-cta-footer' class='button primary'>${getMessage('exposure-landing-result-overflow-footer-cta-label')}</a>
52
      <p class="hibp-attribution">
53
        ${getMessage('exposure-landing-result-footer-attribution').replace('<hibp-link>', '<a href="https://haveibeenpwned.com/" target="_blank">').replace('</hibp-link>', '</a>')}
54
      </p>
55
    </footer>
56
  </div>
57
  <div hidden id="exposure-scan-results-some" class="exposure-scan-results" aria-live="polite">
58
    <header class="exposure-scan-hero">
59
      <div class="exposure-scan-hero-content">
60
        <p>${getMessage('exposure-landing-result-some-hero-lead')}</p>
61
        <a href='/user/breaches' data-cta-id='exposure-landing-result-some-cta-hero' class='button primary'>${getMessage('exposure-landing-result-some-hero-cta-label')}</a>
62
      </div>
63
      <img alt="" src="/images/exposure-scan-hero.svg" />
64
    </header>
65
    <ul class="exposure-scan-breaches">
66
    </ul>
67
    <footer class="exposure-scan-footer">
68
      <a href='/user/breaches' data-cta-id='exposure-landing-result-some-cta-footer' class='button primary'>${getMessage('exposure-landing-result-some-footer-cta-label')}</a>
69
      <p class="hibp-attribution">
70
        ${getMessage('exposure-landing-result-footer-attribution').replace('<hibp-link>', '<a href="https://haveibeenpwned.com/" target="_blank">').replace('</hibp-link>', '</a>')}
71
      </p>
72
    </footer>
73
  </div>
74
  <div hidden id="exposure-scan-results-none" class="exposure-scan-results" aria-live="polite">
75
    <header class="exposure-scan-hero">
76
      <div class="exposure-scan-hero-content">
77
        <p>${getMessage('exposure-landing-result-none-hero-lead')}</p>
78
        <a href='/user/breaches' data-cta-id='exposure-landing-result-none-cta-hero' class='button primary'>${getMessage('exposure-landing-result-none-hero-cta-label')}</a>
79
      </div>
80
      <img alt="" src="/images/exposure-scan-hero.svg" />
81
    </header>
82
    <div class="exposure-scan-breaches">
83
      <div class="exposure-scan-breach">
84
        <img alt="" src="/images/breaches-none.svg" />
85
        ${getMessage('exposure-landing-result-card-nothing')}
86
      </div>
87
      <div aria-hidden="true" role="img" class="exposure-scan-breach">
88
        <img alt="" src="/images/breaches-none.svg" />
89
        ${getMessage('exposure-landing-result-card-nothing')}
90
      </div>
91
      <div aria-hidden="true" role="img" class="exposure-scan-breach">
92
        <img alt="" src="/images/breaches-none.svg" />
93
        ${getMessage('exposure-landing-result-card-nothing')}
94
      </div>
95
    </div>
96
    <footer class="exposure-scan-footer">
97
      <a href='/user/breaches' data-cta-id='exposure-landing-result-none-cta-footer' class='button primary'>${getMessage('exposure-landing-result-none-footer-cta-label')}</a>
98
      <p class="hibp-attribution">
99
        ${getMessage('exposure-landing-result-footer-attribution').replace('<hibp-link>', '<a href="https://haveibeenpwned.com/" target="_blank">').replace('</hibp-link>', '</a>')}
100
      </p>
101
    </footer>
102
  </div>
103
`
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