@@ -28,6 +28,12 @@ export default class DockerCloudAutomatedBuild extends BaseJsonService {
|
||||
|
||||
async handle({ user, repo }) {
|
||||
const data = await fetchBuild(this, { user, repo })
|
||||
|
||||
if (data.objects.length === 0) {
|
||||
return this.constructor.render({
|
||||
buildSettings: [],
|
||||
})
|
||||
}
|
||||
return this.constructor.render({
|
||||
buildSettings: data.objects[0].build_settings,
|
||||
})
|
||||
|
||||
@@ -5,13 +5,29 @@ export const t = await createServiceTester()
|
||||
|
||||
const isAutomatedBuildStatus = Joi.string().valid('automated', 'manual')
|
||||
|
||||
t.create('docker cloud automated build (valid, user)')
|
||||
.get('/jrottenberg/ffmpeg.json')
|
||||
t.create('docker cloud automated build (valid user)')
|
||||
.get('/pavics/magpie.json')
|
||||
.expectBadge({
|
||||
label: 'docker build',
|
||||
message: isAutomatedBuildStatus,
|
||||
})
|
||||
|
||||
t.create('docker cloud automated build status (invalid, nonexisting user)')
|
||||
.get('/pavicsssss/magpie.json')
|
||||
.expectBadge({
|
||||
label: 'docker build',
|
||||
message: `manual`,
|
||||
})
|
||||
|
||||
t.create(
|
||||
`docker cloud build status (valid user, but the 'objects' array from the response is empty)`
|
||||
)
|
||||
.get('/pavics/weaver.json')
|
||||
.expectBadge({
|
||||
label: 'docker build',
|
||||
message: `manual`,
|
||||
})
|
||||
|
||||
t.create('docker cloud automated build (not found)')
|
||||
.get('/badges/not-a-real-repo.json')
|
||||
.intercept(nock =>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { BaseJsonService } from '../index.js'
|
||||
import { BaseJsonService, NotFound } from '../index.js'
|
||||
import { dockerBlue, buildDockerUrl } from './docker-helpers.js'
|
||||
import { fetchBuild } from './docker-cloud-common-fetch.js'
|
||||
|
||||
@@ -31,6 +31,12 @@ export default class DockerCloudBuild extends BaseJsonService {
|
||||
|
||||
async handle({ user, repo }) {
|
||||
const data = await fetchBuild(this, { user, repo })
|
||||
|
||||
if (data.objects.length === 0) {
|
||||
throw new NotFound({
|
||||
prettyMessage: `automated builds not set up`,
|
||||
})
|
||||
}
|
||||
return this.constructor.render({ state: data.objects[0].state })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,13 +3,29 @@ import { createServiceTester } from '../tester.js'
|
||||
import { dockerBlue } from './docker-helpers.js'
|
||||
export const t = await createServiceTester()
|
||||
|
||||
t.create('docker cloud build status (valid, user)')
|
||||
.get('/jrottenberg/ffmpeg.json')
|
||||
t.create('docker cloud build status (valid user)')
|
||||
.get('/pavics/magpie.json')
|
||||
.expectBadge({
|
||||
label: 'docker build',
|
||||
message: isBuildStatus,
|
||||
})
|
||||
|
||||
t.create('docker cloud build status (invalid, nonexisting user)')
|
||||
.get('/pavicsssss/magpie.json')
|
||||
.expectBadge({
|
||||
label: 'docker build',
|
||||
message: `automated builds not set up`,
|
||||
})
|
||||
|
||||
t.create(
|
||||
`docker cloud build status (valid user, but the 'objects' array from the response is empty)`
|
||||
)
|
||||
.get('/pavics/weaver.json')
|
||||
.expectBadge({
|
||||
label: 'docker build',
|
||||
message: `automated builds not set up`,
|
||||
})
|
||||
|
||||
t.create('docker cloud build status (not found)')
|
||||
.get('/badges/not-a-real-repo.json')
|
||||
.intercept(nock =>
|
||||
|
||||
@@ -6,7 +6,7 @@ const cloudBuildSchema = Joi.object({
|
||||
Joi.object({
|
||||
state: Joi.string(),
|
||||
build_settings: Joi.array(),
|
||||
}).required()
|
||||
})
|
||||
)
|
||||
.required(),
|
||||
}).required()
|
||||
|
||||
@@ -39,5 +39,5 @@ t.create('docker version (invalid, unknown repository)')
|
||||
.get('/_/not-a-real-repo.json')
|
||||
.expectBadge({
|
||||
label: 'version',
|
||||
message: 'repository not found',
|
||||
message: 'repository or tag not found',
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user