setup integration test

This commit is contained in:
softprops 2019-10-20 17:50:35 -04:00
parent 1a522d88d8
commit 845942e04a
555 changed files with 103819 additions and 1 deletions

View file

@ -0,0 +1,31 @@
module.exports = routeMatcher
function routeMatcher (paths) {
// EXAMPLE. For the following paths:
/* [
"/orgs/:org/invitations",
"/repos/:owner/:repo/collaborators/:username"
] */
const regexes = paths.map(p =>
p.split('/')
.map(c => c.startsWith(':') ? '(?:.+?)' : c)
.join('/')
)
// 'regexes' would contain:
/* [
'/orgs/(?:.+?)/invitations',
'/repos/(?:.+?)/(?:.+?)/collaborators/(?:.+?)'
] */
const regex = `^(?:${regexes.map(r => `(?:${r})`).join('|')})[^/]*$`
// 'regex' would contain:
/*
^(?:(?:\/orgs\/(?:.+?)\/invitations)|(?:\/repos\/(?:.+?)\/(?:.+?)\/collaborators\/(?:.+?)))[^\/]*$
It may look scary, but paste it into https://www.debuggex.com/
and it will make a lot more sense!
*/
return new RegExp(regex, 'i')
}