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

badges / shields / 16386279195

15 Jul 2025 08:07PM UTC coverage: 97.949% (-0.04%) from 97.987%
16386279195

push

github

web-flow
chore(deps-dev): bump neostandard from 0.12.1 to 0.12.2 (#11199)

Bumps [neostandard](https://github.com/neostandard/neostandard) from 0.12.1 to 0.12.2.
- [Release notes](https://github.com/neostandard/neostandard/releases)
- [Changelog](https://github.com/neostandard/neostandard/blob/main/CHANGELOG.md)
- [Commits](https://github.com/neostandard/neostandard/compare/v0.12.1...v0.12.2)

---
updated-dependencies:
- dependency-name: neostandard
  dependency-version: 0.12.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

5913 of 6185 branches covered (95.6%)

49870 of 50914 relevant lines covered (97.95%)

131.82 hits per line

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

93.33
/services/codeclimate/codeclimate-coverage.service.js
1
import Joi from 'joi'
3✔
2
import { coveragePercentage, letterScore } from '../color-formatters.js'
3✔
3
import { BaseJsonService, NotFound, pathParams } from '../index.js'
3✔
4
import { isLetterGrade, fetchRepo } from './codeclimate-common.js'
3✔
5

3✔
6
const schema = Joi.object({
3✔
7
  data: Joi.object({
3✔
8
    attributes: Joi.object({
3✔
9
      covered_percent: Joi.number().required(),
3✔
10
      rating: Joi.object({
3✔
11
        letter: isLetterGrade,
3✔
12
      }).required(),
3✔
13
    }).required(),
3✔
14
  }).allow(null),
3✔
15
}).required()
3✔
16

3✔
17
export default class CodeclimateCoverage extends BaseJsonService {
3✔
18
  static category = 'coverage'
3✔
19
  static route = {
3✔
20
    base: 'codeclimate',
3✔
21
    pattern: ':format(coverage|coverage-letter)/:user/:repo',
3✔
22
  }
3✔
23

3✔
24
  static openApi = {
3✔
25
    '/codeclimate/{format}/{user}/{repo}': {
3✔
26
      get: {
3✔
27
        summary: 'Code Climate coverage',
3✔
28
        parameters: pathParams(
3✔
29
          {
3✔
30
            name: 'format',
3✔
31
            example: 'coverage',
3✔
32
            schema: { type: 'string', enum: this.getEnum('format') },
3✔
33
          },
3✔
34
          { name: 'user', example: 'codeclimate' },
3✔
35
          { name: 'repo', example: 'codeclimate' },
3✔
36
        ),
3✔
37
      },
3✔
38
    },
3✔
39
  }
3✔
40

3✔
41
  static render({ wantLetter, percentage, letter }) {
3✔
42
    if (wantLetter) {
1!
43
      return {
×
44
        message: letter,
×
45
        color: letterScore(letter),
×
46
      }
×
47
    } else {
1✔
48
      return {
1✔
49
        message: `${percentage.toFixed(0)}%`,
1✔
50
        color: coveragePercentage(percentage),
1✔
51
      }
1✔
52
    }
1✔
53
  }
1✔
54

3✔
55
  async fetch({ user, repo }) {
3✔
56
    const repoInfos = await fetchRepo(this, { user, repo })
5✔
57
    const repoInfosWithTestReport = repoInfos.filter(
1✔
58
      repoInfo => repoInfo.relationships.latest_default_branch_test_report.data,
1✔
59
    )
1✔
60
    if (repoInfosWithTestReport.length === 0) {
5!
61
      throw new NotFound({ prettyMessage: 'test report not found' })
×
62
    }
×
63
    const {
1✔
64
      id: repoId,
1✔
65
      relationships: {
1✔
66
        latest_default_branch_test_report: { data: testReportInfo },
1✔
67
      },
1✔
68
    } = repoInfosWithTestReport[0]
1✔
69
    const { data } = await this._requestJson({
1✔
70
      schema,
1✔
71
      url: `https://api.codeclimate.com/v1/repos/${repoId}/test_reports/${testReportInfo.id}`,
1✔
72
    })
1✔
73
    return data
1✔
74
  }
5✔
75

3✔
76
  async handle({ format, user, repo }) {
3✔
77
    const {
5✔
78
      attributes: {
5✔
79
        rating: { letter },
5✔
80
        covered_percent: percentage,
5✔
81
      },
5✔
82
    } = await this.fetch({ user, repo })
5✔
83

1✔
84
    return this.constructor.render({
1✔
85
      wantLetter: format === 'coverage-letter',
1✔
86
      letter,
1✔
87
      percentage,
1✔
88
    })
1✔
89
  }
5✔
90
}
3✔
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

© 2026 Coveralls, Inc