Files
shields/services/azure-devops/azure-devops-release.tester.js
Paul Melnikow e983f7bf3b Rewrite vso, rename to [AzureDevops], validate SVG [readthedocs] (#2252)
1. Add validation to BaseSvgScrapingService and update readthedocs accordingly.
2. Rewrite vso and add more tests. Rename it internally to azure-devops. URLs are still `/vso` for now. Should we make a way to let a service register multiple URL patterns?
3. Handle shared code using a functional pattern instead of inheritance. This comes from a discussion https://github.com/badges/shields/pull/2031#issuecomment-417893819. I like the functional approach because it's more direct, nimble, and easy to reason about; plus it allows services to grow from a family of one to two more easily.
2018-11-05 16:52:53 -05:00

44 lines
1.3 KiB
JavaScript

'use strict'
const Joi = require('joi')
const { isBuildStatus } = require('../test-validators')
const t = require('../create-service-tester')()
module.exports = t
// https://dev.azure.com/totodem/Shields.io is a public Azure DevOps project
// solely created for Shields.io testing.
t.create('release status is succeeded')
.get(
'/azure-devops/release/totodem/8cf3ec0e-d0c2-4fcd-8206-ad204f254a96/1/1.json'
)
.expectJSONTypes(
Joi.object().keys({
name: 'deployment',
value: isBuildStatus,
})
)
t.create('unknown environment')
.get(
'/azure-devops/release/totodem/8cf3ec0e-d0c2-4fcd-8206-ad204f254a96/1/515.json'
)
.expectJSON({ name: 'deployment', value: 'user or environment not found' })
t.create('unknown definition')
.get(
'/azure-devops/release/totodem/8cf3ec0e-d0c2-4fcd-8206-ad204f254a96/515/515.json'
)
.expectJSON({
name: 'deployment',
value: 'inaccessible or definition not found',
})
t.create('unknown project')
.get('/azure-devops/release/totodem/515/515/515.json')
.expectJSON({ name: 'deployment', value: 'project not found' })
t.create('unknown user')
.get('/azure-devops/release/this-repo/does-not-exist/1/2.json')
.expectJSON({ name: 'deployment', value: 'user or environment not found' })