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

badges / shields / 25907554121

14 May 2026 09:22AM UTC coverage: 98.011% (-0.1%) from 98.11%
25907554121

push

github

web-flow
refactor: replace route format with pattern in website redirect service (#11858)

replace `route`'s deprecated `format` with `pattern`

part of #3329
helps #11800

5819 of 6088 branches covered (95.58%)

36 of 40 new or added lines in 1 file covered. (90.0%)

46 existing lines in 8 files now uncovered.

49179 of 50177 relevant lines covered (98.01%)

138.42 hits per line

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

85.71
/services/sourceforge/sourceforge-platform.service.js
1
import Joi from 'joi'
3✔
2
import { pathParams } from '../index.js'
3✔
3
import BaseSourceForgeService from './sourceforge-base.js'
3✔
4

3✔
5
const schema = Joi.object({
3✔
6
  categories: Joi.object({
3✔
7
    os: Joi.array()
3✔
8
      .items({
3✔
9
        fullname: Joi.string().required(),
3✔
10
      })
3✔
11
      .required(),
3✔
12
  }).required(),
3✔
13
}).required()
3✔
14

3✔
15
export default class SourceforgePlatform extends BaseSourceForgeService {
3✔
16
  static category = 'platform-support'
3✔
17

3✔
18
  static route = {
3✔
19
    base: 'sourceforge/platform',
3✔
20
    pattern: ':project',
3✔
21
  }
3✔
22

3✔
23
  static openApi = {
3✔
24
    '/sourceforge/platform/{project}': {
3✔
25
      get: {
3✔
26
        summary: 'SourceForge Platform',
3✔
27
        parameters: pathParams({
3✔
28
          name: 'project',
3✔
29
          example: 'guitarix',
3✔
30
        }),
3✔
31
      },
3✔
32
    },
3✔
33
  }
3✔
34

3✔
35
  static defaultBadgeData = { label: 'platform' }
3✔
36

3✔
37
  static render({ platforms }) {
3✔
UNCOV
38
    return {
×
UNCOV
39
      message: platforms.join(' | '),
×
UNCOV
40
    }
×
UNCOV
41
  }
×
42

3✔
43
  async handle({ project }) {
3✔
44
    const body = await this.fetch({ project, schema })
2✔
UNCOV
45
    return this.constructor.render({
×
UNCOV
46
      platforms: body.categories.os.map(obj => obj.fullname),
×
UNCOV
47
    })
×
48
  }
2✔
49
}
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