326 lines
9.5 KiB
JavaScript
326 lines
9.5 KiB
JavaScript
'use strict'
|
|
|
|
const Joi = require('joi')
|
|
const t = (module.exports = require('../tester').createServiceTester())
|
|
|
|
const validColors = ['brightgreen', 'green', 'yellow', 'orange', 'red']
|
|
|
|
t.create('request on observatory.mozilla.org')
|
|
.get('/grade-score/observatory.mozilla.org.json?style=_shields_test')
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: Joi.string().regex(/^[ABCDEF][+-]? \([0-9]{1,3}\/100\)$/),
|
|
color: Joi.string()
|
|
.valid(validColors)
|
|
.required(),
|
|
})
|
|
|
|
t.create('request on observatory.mozilla.org with inclusion in public results')
|
|
.get('/grade-score/observatory.mozilla.org.json?publish&style=_shields_test')
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: Joi.string().regex(/^[ABCDEF][+-]? \([0-9]{1,3}\/100\)$/),
|
|
color: Joi.string()
|
|
.valid(validColors)
|
|
.required(),
|
|
})
|
|
|
|
t.create('grade without score (mock)')
|
|
.get('/grade/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'A', score: 115 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'A',
|
|
color: 'brightgreen',
|
|
})
|
|
|
|
t.create('grade A with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'A', score: 115 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'A (115/100)',
|
|
color: 'brightgreen',
|
|
})
|
|
|
|
t.create('grade A+ with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'A+', score: 115 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'A+ (115/100)',
|
|
color: 'brightgreen',
|
|
})
|
|
|
|
t.create('grade A- with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'A-', score: 115 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'A- (115/100)',
|
|
color: 'brightgreen',
|
|
})
|
|
|
|
t.create('grade B with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'B', score: 115 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'B (115/100)',
|
|
color: 'green',
|
|
})
|
|
|
|
t.create('grade B+ with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'B+', score: 115 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'B+ (115/100)',
|
|
color: 'green',
|
|
})
|
|
|
|
t.create('grade B- with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'B-', score: 115 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'B- (115/100)',
|
|
color: 'green',
|
|
})
|
|
|
|
t.create('grade C with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'C', score: 80 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'C (80/100)',
|
|
color: 'yellow',
|
|
})
|
|
|
|
t.create('grade C+ with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'C+', score: 80 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'C+ (80/100)',
|
|
color: 'yellow',
|
|
})
|
|
|
|
t.create('grade C- with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'C-', score: 80 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'C- (80/100)',
|
|
color: 'yellow',
|
|
})
|
|
|
|
t.create('grade D with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'D', score: 15 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'D (15/100)',
|
|
color: 'orange',
|
|
})
|
|
|
|
t.create('grade D+ with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'D+', score: 15 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'D+ (15/100)',
|
|
color: 'orange',
|
|
})
|
|
|
|
t.create('grade D- with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'D-', score: 15 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'D- (15/100)',
|
|
color: 'orange',
|
|
})
|
|
|
|
t.create('grade E with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'E', score: 15 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'E (15/100)',
|
|
color: 'orange',
|
|
})
|
|
|
|
t.create('grade E+ with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'E+', score: 15 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'E+ (15/100)',
|
|
color: 'orange',
|
|
})
|
|
|
|
t.create('grade E- with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'E-', score: 15 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'E- (15/100)',
|
|
color: 'orange',
|
|
})
|
|
|
|
t.create('grade F with score (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FINISHED', grade: 'F', score: 0 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'F (0/100)',
|
|
color: 'red',
|
|
})
|
|
|
|
t.create('aborted (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'ABORTED', grade: null, score: null })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'aborted',
|
|
color: 'lightgrey',
|
|
})
|
|
|
|
t.create('failed (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'FAILED', grade: null, score: null })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'failed',
|
|
color: 'lightgrey',
|
|
})
|
|
|
|
t.create('pending (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'PENDING', grade: null, score: null })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'pending',
|
|
color: 'lightgrey',
|
|
})
|
|
|
|
t.create('starting (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'STARTING', grade: null, score: null })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'starting',
|
|
color: 'lightgrey',
|
|
})
|
|
|
|
t.create('running (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'RUNNING', grade: null, score: null })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'running',
|
|
color: 'lightgrey',
|
|
})
|
|
|
|
t.create('invalid response with grade and score but not finished (mock)')
|
|
.get('/grade-score/foo.bar.json?style=_shields_test')
|
|
.intercept(nock =>
|
|
nock('https://http-observatory.security.mozilla.org')
|
|
.post('/api/v1/analyze?host=foo.bar')
|
|
.reply(200, { state: 'RUNNING', grade: 'A+', score: 135 })
|
|
)
|
|
.expectBadge({
|
|
label: 'observatory',
|
|
message: 'invalid response data',
|
|
color: 'lightgrey',
|
|
})
|