You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
1.1 KiB
28 lines
1.1 KiB
3 years ago
|
'use strict'
|
||
|
|
||
|
const { test } = require('tap')
|
||
|
const { formatParamUrl } = require('../lib/util/common')
|
||
|
|
||
|
const cases = [
|
||
|
['/example/:userId', '/example/{userId}'],
|
||
|
['/example/:userId/:secretToken', '/example/{userId}/{secretToken}'],
|
||
|
['/example/near/:lat-:lng/radius/:r', '/example/near/{lat}-{lng}/radius/{r}'],
|
||
|
['/example/near/:lat_1-:lng_1/radius/:r_1', '/example/near/{lat_1}-{lng_1}/radius/{r_1}'],
|
||
|
['/example/*', '/example/{wildcard}'],
|
||
|
['/example/:file(^\\d+).png', '/example/{file}.png'],
|
||
|
['/example/at/:hour(^\\d{2})h:minute(^\\d{2})m', '/example/at/{hour}h{minute}m'],
|
||
|
['/example/at/(^\\d{2})h(^\\d{2})m', '/example/at/{regexp1}h{regexp2}m'],
|
||
|
['/example/at/(^([0-9]{2})h$)-(^([0-9]{2})m$)', '/example/at/{regexp1}-{regexp2}'],
|
||
|
['/name::verb', '/name:verb'],
|
||
|
['/api/v1/postalcode-jp/:code(^[0-9]{7}$)', '/api/v1/postalcode-jp/{code}'],
|
||
|
['/api/v1/postalcode-jp/(^[0-9]{7}$)', '/api/v1/postalcode-jp/{regexp1}']
|
||
|
]
|
||
|
|
||
|
test('formatParamUrl', t => {
|
||
|
t.plan(cases.length)
|
||
|
|
||
|
for (const kase of cases) {
|
||
|
t.equal(formatParamUrl(kase[0]), kase[1])
|
||
|
}
|
||
|
})
|