0
0
mirror of https://github.com/honojs/hono.git synced 2024-12-01 11:51:01 +01:00
hono/test/util.test.ts
Yusuke Wada e6039f69f9
Migrate to TypeScript (#21)
* Migrate to TypeScript

* ready for publish
2022-01-05 18:41:29 +09:00

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')
})
})