mirror of
https://github.com/honojs/hono.git
synced 2024-12-01 10:51:01 +00:00
e6039f69f9
* Migrate to TypeScript * ready for publish
46 lines
1.4 KiB
TypeScript
46 lines
1.4 KiB
TypeScript
import { splitPath, getPattern, getPathFromURL } from '../src/util'
|
|
|
|
describe('Utility methods', () => {
|
|
it('splitPath', () => {
|
|
let ps = splitPath('/')
|
|
expect(ps[0]).toBe('')
|
|
ps = splitPath('/hello')
|
|
expect(ps[0]).toBe('hello')
|
|
ps = splitPath('*')
|
|
expect(ps[0]).toBe('*')
|
|
ps = splitPath('/wildcard-abc/*/wildcard-efg')
|
|
expect(ps[0]).toBe('wildcard-abc')
|
|
expect(ps[1]).toBe('*')
|
|
expect(ps[2]).toBe('wildcard-efg')
|
|
ps = splitPath('/map/:location/events')
|
|
expect(ps[0]).toBe('map')
|
|
expect(ps[1]).toBe(':location')
|
|
expect(ps[2]).toBe('events')
|
|
})
|
|
|
|
it('getPattern', () => {
|
|
let res = getPattern(':id')
|
|
expect(res).not.toBeNull()
|
|
expect(res[0]).toBe('id')
|
|
expect(res[1]).toBe('(.+)')
|
|
res = getPattern(':id{[0-9]+}')
|
|
expect(res[0]).toBe('id')
|
|
expect(res[1]).toBe('([0-9]+)')
|
|
})
|
|
|
|
it('getPathFromURL', () => {
|
|
let path = getPathFromURL('https://example.com/')
|
|
expect(path).toBe('/')
|
|
path = getPathFromURL('https://example.com/hello')
|
|
expect(path).toBe('/hello')
|
|
path = getPathFromURL('https://example.com/hello/hey')
|
|
expect(path).toBe('/hello/hey')
|
|
path = getPathFromURL('https://example.com/hello?name=foo')
|
|
expect(path).toBe('/hello')
|
|
path = getPathFromURL('https://example.com/hello/hey?name=foo&name=bar')
|
|
expect(path).toBe('/hello/hey')
|
|
path = getPathFromURL('https://example.com/hello/hey#fragment')
|
|
expect(path).toBe('/hello/hey')
|
|
})
|
|
})
|