1
0
mirror of https://github.com/badges/shields.git synced 2025-04-18 19:44:04 +03:00

deprecate TAS (#9932)

This commit is contained in:
chris48s 2024-02-14 18:53:08 +00:00 committed by GitHub
parent cb2ebe2e94
commit e419a25981
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 165 deletions

View File

@ -1,111 +1,13 @@
import Joi from 'joi'
import { BaseJsonService } from '../index.js'
import {
testResultQueryParamSchema,
renderTestResultBadge,
} from '../test-results.js'
import { nonNegativeInteger } from '../../services/validators.js'
import { deprecatedService } from '../index.js'
const commonAttrs = {
namedParams: {
provider: 'github',
org: 'tasdemo',
repo: 'axios',
},
queryParams: {
passed_label: 'passed',
failed_label: 'failed',
skipped_label: 'skipped',
compact_message: null,
},
}
const schema = Joi.object({
badge: Joi.object({
passed: nonNegativeInteger,
failed: nonNegativeInteger,
skipped: nonNegativeInteger,
total_tests: nonNegativeInteger,
status: Joi.string().required(),
}).required(),
}).required()
export default class TasBuildStatus extends BaseJsonService {
static category = 'test-results'
static route = {
const TasBuildStatus = deprecatedService({
category: 'test-results',
route: {
base: 'tas/tests',
pattern: ':provider/:org/:repo',
queryParamSchema: testResultQueryParamSchema,
}
},
label: 'tests',
dateAdded: new Date('2024-01-29'),
})
static examples = [
{
title: 'TAS Tests',
staticPreview: this.render({
passed: 20,
failed: 1,
skipped: 1,
total: 22,
}),
...commonAttrs,
},
]
static defaultBadgeData = { label: 'tests' }
static render({
passed,
failed,
skipped,
total,
passedLabel,
failedLabel,
skippedLabel,
isCompact,
}) {
return renderTestResultBadge({
passed,
failed,
skipped,
total,
passedLabel,
failedLabel,
skippedLabel,
isCompact,
})
}
async fetch({ provider, org, repo }) {
return this._requestJson({
schema,
url: `https://api.tas.lambdatest.com/repo/badge?git_provider=${provider}&org=${org}&repo=${repo}`,
httpErrors: {
401: 'private project not supported',
404: 'project not found',
},
})
}
async handle(
{ provider, org, repo },
{
compact_message: compactMessage,
passed_label: passedLabel,
failed_label: failedLabel,
skipped_label: skippedLabel,
},
) {
const { badge } = await this.fetch({ provider, org, repo })
return this.constructor.render({
passed: badge.passed,
failed: badge.failed,
skipped: badge.skipped,
total: badge.total_tests,
passedLabel,
failedLabel,
skippedLabel,
isCompact: compactMessage !== undefined,
})
}
}
export default TasBuildStatus

View File

@ -1,62 +1,11 @@
import { createServiceTester } from '../tester.js'
import {
isDefaultTestTotals,
isCustomTestTotals,
isCustomCompactTestTotals,
} from '../test-validators.js'
import { ServiceTester } from '../tester.js'
export const t = await createServiceTester()
export const t = new ServiceTester({
id: 'tas',
title: 'TasBuildStatus',
pathPrefix: '/tas/tests',
})
t.create('Test status')
.get('/github/tasdemo/axios.json')
.expectBadge({ label: 'tests', message: isDefaultTestTotals })
t.create('Test status with custom labels')
.get('/github/tasdemo/axios.json', {
qs: {
passed_label: 'good',
failed_label: 'bad',
skipped_label: 'n/a',
},
})
.expectBadge({ label: 'tests', message: isCustomTestTotals })
t.create('Test status with compact message and custom labels')
.get('/github/tasdemo/axios.json', {
qs: {
compact_message: null,
passed_label: '💃',
failed_label: '🤦‍♀️',
skipped_label: '🤷',
},
})
.expectBadge({
label: 'tests',
message: isCustomCompactTestTotals,
})
t.create('Test status on project that does not exist')
.get('/github/tasdemo/doesntexist.json')
.expectBadge({
label: 'tests',
message: 'project not found',
color: 'red',
})
t.create('Test status on private project')
.get('/github/tasdemo/nexe-private.json')
.intercept(nock =>
nock('https://api.tas.lambdatest.com')
.get('/repo/badge')
.query({
git_provider: 'github',
org: 'tasdemo',
repo: 'nexe-private',
})
.reply(401),
)
.expectBadge({
label: 'tests',
message: 'private project not supported',
color: 'lightgrey',
})
.expectBadge({ label: 'tests', message: 'no longer available' })