migrate some services from examples to openApi part 43; affects [jenkins] (#9918)
* update jenkins service tests * migrate some services from examples to openApi
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import Joi from 'joi'
|
||||
import { queryParam } from '../index.js'
|
||||
import { renderBuildStatusBadge } from '../build-status.js'
|
||||
import JenkinsBase from './jenkins-base.js'
|
||||
import {
|
||||
@@ -40,16 +41,20 @@ export default class JenkinsBuild extends JenkinsBase {
|
||||
queryParamSchema,
|
||||
}
|
||||
|
||||
static examples = [
|
||||
{
|
||||
title: 'Jenkins',
|
||||
namedParams: {},
|
||||
queryParams: {
|
||||
jobUrl: 'https://wso2.org/jenkins/view/All%20Builds/job/archetypes',
|
||||
static openApi = {
|
||||
'/jenkins/build': {
|
||||
get: {
|
||||
summary: 'Jenkins Build',
|
||||
parameters: [
|
||||
queryParam({
|
||||
name: 'jobUrl',
|
||||
example: 'https://ci.eclipse.org/jgit/job/jgit',
|
||||
required: true,
|
||||
}),
|
||||
],
|
||||
},
|
||||
staticPreview: renderBuildStatusBadge({ status: 'passing' }),
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
static defaultBadgeData = { label: 'build' }
|
||||
|
||||
|
||||
@@ -14,9 +14,7 @@ t.create('build job not found')
|
||||
|
||||
t.create('build found (view)')
|
||||
.get(
|
||||
`/build.json?jobUrl=${encodeURIComponent(
|
||||
'https://wso2.org/jenkins/view/All Builds/job/archetypes',
|
||||
)}`,
|
||||
'/build.json?jobUrl=https://jenkins.sqlalchemy.org/view/alembic/job/alembic_coverage/',
|
||||
)
|
||||
.expectBadge({ label: 'build', message: isJenkinsBuildStatus })
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import Joi from 'joi'
|
||||
import { pathParam, queryParam } from '../index.js'
|
||||
import { coveragePercentage } from '../color-formatters.js'
|
||||
import JenkinsBase from './jenkins-base.js'
|
||||
import {
|
||||
@@ -87,7 +88,7 @@ const formatMap = {
|
||||
},
|
||||
}
|
||||
|
||||
const documentation = `
|
||||
const description = `
|
||||
<p>
|
||||
We support coverage metrics from a variety of Jenkins plugins:
|
||||
<ul>
|
||||
@@ -107,20 +108,26 @@ export default class JenkinsCoverage extends JenkinsBase {
|
||||
queryParamSchema,
|
||||
}
|
||||
|
||||
static examples = [
|
||||
{
|
||||
title: 'Jenkins Coverage',
|
||||
namedParams: {
|
||||
format: 'cobertura',
|
||||
static openApi = {
|
||||
'/jenkins/coverage/{format}': {
|
||||
get: {
|
||||
summary: 'Jenkins Coverage',
|
||||
description,
|
||||
parameters: [
|
||||
pathParam({
|
||||
name: 'format',
|
||||
example: 'cobertura',
|
||||
schema: { type: 'string', enum: this.getEnum('format') },
|
||||
}),
|
||||
queryParam({
|
||||
name: 'jobUrl',
|
||||
example: 'https://jenkins.sqlalchemy.org/job/alembic_coverage',
|
||||
required: true,
|
||||
}),
|
||||
],
|
||||
},
|
||||
queryParams: {
|
||||
jobUrl: 'https://jenkins.sqlalchemy.org/job/alembic_coverage',
|
||||
},
|
||||
keywords: ['jacoco', 'cobertura', 'llvm-cov', 'istanbul'],
|
||||
staticPreview: this.render({ coverage: 95 }),
|
||||
documentation,
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
static defaultBadgeData = { label: 'coverage' }
|
||||
|
||||
|
||||
@@ -10,13 +10,13 @@ export const t = await createServiceTester()
|
||||
t.create('jacoco: job found')
|
||||
.get(
|
||||
`/jacoco.json?jobUrl=${encodeURIComponent(
|
||||
'https://wso2.org/jenkins/view/All%20Builds/job/archetypes',
|
||||
'https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven-surefire/job/master',
|
||||
)}`,
|
||||
)
|
||||
.expectBadge({ label: 'coverage', message: isIntegerPercentage })
|
||||
|
||||
t.create('jacoco: job not found')
|
||||
.get('/jacoco.json?jobUrl=https://wso2.org/jenkins/job/does-not-exist')
|
||||
.get('/jacoco.json?jobUrl=https://ci-maven.apache.org/job/does-not-exist')
|
||||
.expectBadge({ label: 'coverage', message: 'job or coverage not found' })
|
||||
|
||||
t.create('cobertura: job not found')
|
||||
@@ -31,12 +31,6 @@ t.create('cobertura: job found')
|
||||
)
|
||||
.expectBadge({ label: 'coverage', message: isIntegerPercentage })
|
||||
|
||||
t.create('code coverage API v1: job not found')
|
||||
.get(
|
||||
'/apiv1.json?jobUrl=https://jenkins.library.illinois.edu/job/does-not-exist',
|
||||
)
|
||||
.expectBadge({ label: 'coverage', message: 'job or coverage not found' })
|
||||
|
||||
const coverageApiV1Response = {
|
||||
_class: 'io.jenkins.plugins.coverage.targets.CoverageResult',
|
||||
results: {
|
||||
@@ -66,9 +60,17 @@ t.create('code coverage API v1: job found')
|
||||
)
|
||||
.expectBadge({ label: 'coverage', message: isIntegerPercentage })
|
||||
|
||||
t.create('code coverage API v4+: job not found')
|
||||
t.create('code coverage API v1: job not found')
|
||||
.get(
|
||||
'/apiv4.json?jobUrl=https://jenkins.library.illinois.edu/job/does-not-exist',
|
||||
'/apiv1.json?jobUrl=http://loneraver.duckdns.org:8082/job/does-not-exist',
|
||||
)
|
||||
.intercept(nock =>
|
||||
nock(
|
||||
'http://loneraver.duckdns.org:8082/job/does-not-exist/lastCompletedBuild',
|
||||
)
|
||||
.get('/coverage/result/api/json')
|
||||
.query(true)
|
||||
.reply(404),
|
||||
)
|
||||
.expectBadge({ label: 'coverage', message: 'job or coverage not found' })
|
||||
|
||||
@@ -77,3 +79,7 @@ t.create('code coverage API v4+: job found')
|
||||
'/apiv4.json?jobUrl=https://jenkins.mm12.xyz/jenkins/job/nmfu/job/master',
|
||||
)
|
||||
.expectBadge({ label: 'coverage', message: isIntegerPercentage })
|
||||
|
||||
t.create('code coverage API v4+: job not found')
|
||||
.get('/apiv4.json?jobUrl=https://jenkins.mm12.xyz/jenkins/job/does-not-exist')
|
||||
.expectBadge({ label: 'coverage', message: 'job or coverage not found' })
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import Joi from 'joi'
|
||||
import {
|
||||
documentation,
|
||||
documentation as description,
|
||||
testResultQueryParamSchema,
|
||||
testResultOpenApiQueryParams,
|
||||
renderTestResultBadge,
|
||||
} from '../test-results.js'
|
||||
import { optionalNonNegativeInteger } from '../validators.js'
|
||||
import { InvalidResponse } from '../index.js'
|
||||
import { InvalidResponse, queryParam } from '../index.js'
|
||||
import JenkinsBase from './jenkins-base.js'
|
||||
import {
|
||||
buildTreeParamQueryString,
|
||||
@@ -41,27 +42,22 @@ export default class JenkinsTests extends JenkinsBase {
|
||||
queryParamSchema: queryParamSchema.concat(testResultQueryParamSchema),
|
||||
}
|
||||
|
||||
static examples = [
|
||||
{
|
||||
title: 'Jenkins tests',
|
||||
namedParams: {},
|
||||
queryParams: {
|
||||
compact_message: null,
|
||||
passed_label: 'passed',
|
||||
failed_label: 'failed',
|
||||
skipped_label: 'skipped',
|
||||
jobUrl: 'https://jenkins.sqlalchemy.org/job/alembic_gerrit',
|
||||
static openApi = {
|
||||
'/jenkins/tests': {
|
||||
get: {
|
||||
summary: 'Jenkins Tests',
|
||||
description,
|
||||
parameters: [
|
||||
queryParam({
|
||||
name: 'jobUrl',
|
||||
example: 'https://jenkins.sqlalchemy.org/job/alembic_gerrit',
|
||||
required: true,
|
||||
}),
|
||||
...testResultOpenApiQueryParams,
|
||||
],
|
||||
},
|
||||
staticPreview: this.render({
|
||||
passed: 477,
|
||||
failed: 2,
|
||||
skipped: 0,
|
||||
total: 479,
|
||||
isCompact: false,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
static defaultBadgeData = { label: 'tests' }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user