Skip to content

Commit 67deddb

Browse files
authored
Use ellipsis when many versions returned for [ModrinthGameVersions] (#10350)
1 parent 1585d15 commit 67deddb

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

services/modrinth/modrinth-game-versions.service.js

+6
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ export default class ModrinthGameVersions extends BaseModrinthService {
2525
static defaultBadgeData = { label: 'game versions' }
2626

2727
static render({ versions }) {
28+
if (versions.length > 5) {
29+
return {
30+
message: `${versions[0]} | ${versions[1]} | ... | ${versions[versions.length - 2]} | ${versions[versions.length - 1]}`,
31+
color: 'blue',
32+
}
33+
}
2834
return {
2935
message: versions.join(' | '),
3036
color: 'blue',
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { test, given } from 'sazerac'
2+
import ModrinthGameVersions from './modrinth-game-versions.service.js'
3+
4+
describe('render function', function () {
5+
it('displays up to five versions', async function () {
6+
test(ModrinthGameVersions.render, () => {
7+
given({ versions: ['1.1', '1.2', '1.3', '1.4', '1.5'] }).expect({
8+
message: '1.1 | 1.2 | 1.3 | 1.4 | 1.5',
9+
color: 'blue',
10+
})
11+
})
12+
})
13+
14+
it('uses ellipsis for six versions or more', async function () {
15+
test(ModrinthGameVersions.render, () => {
16+
given({ versions: ['1.1', '1.2', '1.3', '1.4', '1.5', '1.6'] }).expect({
17+
message: '1.1 | 1.2 | ... | 1.5 | 1.6',
18+
color: 'blue',
19+
})
20+
})
21+
})
22+
})

services/modrinth/modrinth-game-versions.tester.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import Joi from 'joi'
12
import { createServiceTester } from '../tester.js'
23
import { withRegex } from '../test-validators.js'
34

@@ -7,7 +8,12 @@ t.create('Game Versions')
78
.get('/AANobbMI.json')
89
.expectBadge({
910
label: 'game versions',
10-
message: withRegex(/\d+\.\d+(\.\d+)?( \| )?/),
11+
message: Joi.alternatives().try(
12+
withRegex(/^(\d+\.\d+(\.\d+)?( \| )?)+$/),
13+
withRegex(
14+
/^\d+\.\d+(\.\d+)? \| \d+\.\d+(\.\d+)? \| \.\.\. \| \d+\.\d+(\.\d+)? \| \d+\.\d+(\.\d+)?$/,
15+
),
16+
),
1117
})
1218

1319
t.create('Game Versions (not found)')

0 commit comments

Comments
 (0)