Files
shields/services/jetbrains/jetbrains-downloads.tester.js
2021-07-09 12:53:55 +01:00

58 lines
1.8 KiB
JavaScript

import { isMetric } from '../test-validators.js'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
t.create('downloads (number as a plugin id)')
.get('/7495.json')
.expectBadge({ label: 'downloads', message: isMetric })
t.create('downloads (plugin id from plugin.xml)')
.get('/org.intellij.scala.json')
.expectBadge({ label: 'downloads', message: isMetric })
t.create('downloads (user friendly plugin id)')
.get('/1347-scala.json')
.expectBadge({ label: 'downloads', message: isMetric })
t.create('downloads (numeric id)')
.get('/9435.json')
.intercept(nock =>
nock('https://plugins.jetbrains.com')
.get('/api/plugins/9435')
.reply(200, { downloads: 2 })
)
.expectBadge({ label: 'downloads', message: '2' })
t.create('downloads (string id)')
.get('/io.harply.plugin.json')
.intercept(
nock =>
nock('https://plugins.jetbrains.com')
.get('/plugins/list?pluginId=io.harply.plugin')
.reply(
200,
`<?xml version="1.0" encoding="UTF-8"?>
<plugin-repository>
<category name="Code editing">
<idea-plugin downloads="2" size="13159" date="1485601807000" url=""></idea-plugin>
</category>
</plugin-repository>`
),
{
'Content-Type': 'text/xml;charset=UTF-8',
}
)
.expectBadge({ label: 'downloads', message: '2' })
t.create('unknown plugin (string id)')
.get('/unknown-plugin.json')
.expectBadge({ label: 'downloads', message: 'not found' })
t.create('unknown plugin (numeric id)')
.get('/9999999999999.json')
.expectBadge({ label: 'downloads', message: 'not found' })
t.create('unknown plugin (mixed id)')
.get('/9999999999999-abc.json')
.expectBadge({ label: 'downloads', message: 'not found' })