Files
simple-mail-cleaner/backend/node_modules/find-my-way/test/issue-240.test.js
2026-01-22 15:49:12 +01:00

31 lines
1.2 KiB
JavaScript

'use strict'
const t = require('tap')
const FindMyWay = require('../')
t.test('issue-240: .find matching', (t) => {
t.plan(14)
const findMyWay = FindMyWay({ ignoreDuplicateSlashes: true })
const fixedPath = function staticPath () {}
const varPath = function parameterPath () {}
findMyWay.on('GET', '/a/b', fixedPath)
findMyWay.on('GET', '/a/:pam/c', varPath)
t.equal(findMyWay.find('GET', '/a/b').handler, fixedPath)
t.equal(findMyWay.find('GET', '/a//b').handler, fixedPath)
t.equal(findMyWay.find('GET', '/a/b/c').handler, varPath)
t.equal(findMyWay.find('GET', '/a//b/c').handler, varPath)
t.equal(findMyWay.find('GET', '/a///b/c').handler, varPath)
t.equal(findMyWay.find('GET', '/a//b//c').handler, varPath)
t.equal(findMyWay.find('GET', '/a///b///c').handler, varPath)
t.equal(findMyWay.find('GET', '/a/foo/c').handler, varPath)
t.equal(findMyWay.find('GET', '/a//foo/c').handler, varPath)
t.equal(findMyWay.find('GET', '/a///foo/c').handler, varPath)
t.equal(findMyWay.find('GET', '/a//foo//c').handler, varPath)
t.equal(findMyWay.find('GET', '/a///foo///c').handler, varPath)
t.notOk(findMyWay.find('GET', '/a/c'))
t.notOk(findMyWay.find('GET', '/a//c'))
})