Amio
6 years ago
3 changed files with 3450 additions and 82 deletions
File diff suppressed because it is too large
@ -0,0 +1,53 @@ |
|||||
|
const assert = require('assert') |
||||
|
const tap = require('tap') |
||||
|
const request = require('supertest') |
||||
|
const micro = require('micro') |
||||
|
const badgen = require('../service.js') |
||||
|
const liveFns = require('../libs/live-fns/_index.js') |
||||
|
|
||||
|
// process.env.TARGET should be the service url
|
||||
|
// - "https://badgen-canary.now.sh"
|
||||
|
// - "http://localhost:3000"
|
||||
|
const service = process.env.TARGET || micro(badgen) |
||||
|
const isSvg = str => str.trim().startsWith('<svg ') |
||||
|
|
||||
|
const badgeTests = [ |
||||
|
'/badge/npm/v1.2.3', |
||||
|
'/badge/npm/v1.2.3/blue', |
||||
|
'/badge/npm/v1.2.3/FAD', |
||||
|
'/badge/npm/v1.2.3/FAD?icon=npm', |
||||
|
'/npm/v/express', |
||||
|
'/npm/v/babel-core', |
||||
|
'/npm/v/ava/next', |
||||
|
'/npm/v/next/canary', |
||||
|
'/npm/v/@nestjs/core?icon=npm&label=' |
||||
|
] |
||||
|
|
||||
|
badgeTests.forEach(badgePath => { |
||||
|
tap.test(badgePath, t => { |
||||
|
return request(service) |
||||
|
.get(badgePath) |
||||
|
.expect(200) |
||||
|
.expect('Content-Type', /svg\+xml/) |
||||
|
.then(res => assert(isSvg(res.body.toString()))) |
||||
|
}) |
||||
|
}) |
||||
|
|
||||
|
const keywords = ['badge', 'v', 'nls', 'license', 'red'] |
||||
|
const chaosTests = new Array(10).fill().map(undef => { |
||||
|
const keys = keywords.concat(Object.keys(liveFns)) |
||||
|
const len = Math.ceil(Math.random() * 5) |
||||
|
const args = new Array(len).fill().map(undef => { |
||||
|
return keys[Math.floor(Math.random() * keys.length)] |
||||
|
}) |
||||
|
return `/${args.join('/')}` |
||||
|
}) |
||||
|
|
||||
|
chaosTests.forEach(badgePath => { |
||||
|
tap.test(badgePath, t => { |
||||
|
return request(service) |
||||
|
.get(badgePath) |
||||
|
.expect('Content-Type', /svg\+xml/) |
||||
|
.then(res => assert(isSvg(res.body.toString()))) |
||||
|
}) |
||||
|
}) |
Loading…
Reference in new issue