wzp
2021-05-13 7d694a9113118daec5be7ac224dab46a3b20f106
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
'use strict'
 
const t = require('tap')
const test = t.test
const FindMyWay = require('../')
 
test('maxParamLength default value is 500', t => {
  t.plan(1)
 
  const findMyWay = FindMyWay()
  t.strictEqual(findMyWay.maxParamLength, 100)
})
 
test('maxParamLength should set the maximum length for a parametric route', t => {
  t.plan(1)
 
  const findMyWay = FindMyWay({ maxParamLength: 10 })
  findMyWay.on('GET', '/test/:param', () => {})
  t.deepEqual(findMyWay.find('GET', '/test/123456789abcd'), null)
})
 
test('maxParamLength should set the maximum length for a parametric (regex) route', t => {
  t.plan(1)
 
  const findMyWay = FindMyWay({ maxParamLength: 10 })
  findMyWay.on('GET', '/test/:param(^\\d+$)', () => {})
 
  t.deepEqual(findMyWay.find('GET', '/test/123456789abcd'), null)
})
 
test('maxParamLength should set the maximum length for a parametric (multi) route', t => {
  t.plan(1)
 
  const findMyWay = FindMyWay({ maxParamLength: 10 })
  findMyWay.on('GET', '/test/:param-bar', () => {})
  t.deepEqual(findMyWay.find('GET', '/test/123456789abcd'), null)
})
 
test('maxParamLength should set the maximum length for a parametric (regex with suffix) route', t => {
  t.plan(1)
 
  const findMyWay = FindMyWay({ maxParamLength: 10 })
  findMyWay.on('GET', '/test/:param(^\\w{3})bar', () => {})
  t.deepEqual(findMyWay.find('GET', '/test/123456789abcd'), null)
})