2024-05-18 23:58:15 +08:00
|
|
|
import type { RouteHandler } from '../src'
|
2024-05-15 15:51:34 +08:00
|
|
|
import { OpenAPIHono, createRoute, z } from '../src'
|
|
|
|
|
2024-05-18 23:58:15 +08:00
|
|
|
describe('supports async handler', () => {
|
2024-05-15 15:51:34 +08:00
|
|
|
const route = createRoute({
|
|
|
|
method: 'get',
|
|
|
|
path: '/users',
|
|
|
|
responses: {
|
|
|
|
200: {
|
|
|
|
content: {
|
|
|
|
'application/json': {
|
|
|
|
schema: z.object({
|
|
|
|
id: z.string(),
|
|
|
|
}),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
description: 'Retrieve the user',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
2024-05-18 23:58:15 +08:00
|
|
|
test('argument of openapi method', () => {
|
|
|
|
const hono = new OpenAPIHono()
|
|
|
|
|
|
|
|
hono.openapi(route, (c) => {
|
|
|
|
return c.json({
|
|
|
|
id: '123',
|
|
|
|
})
|
2024-05-15 15:51:34 +08:00
|
|
|
})
|
|
|
|
|
2024-05-18 23:58:15 +08:00
|
|
|
hono.openapi(route, async (c) => {
|
|
|
|
return c.json({
|
|
|
|
id: '123',
|
|
|
|
})
|
2024-05-15 15:51:34 +08:00
|
|
|
})
|
|
|
|
})
|
2024-05-18 23:58:15 +08:00
|
|
|
|
|
|
|
test('RouteHandler type', () => {
|
|
|
|
const handler: RouteHandler<typeof route> = (c) => {
|
|
|
|
return c.json({
|
|
|
|
id: '123',
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
const asyncHandler: RouteHandler<typeof route> = async (c) => {
|
|
|
|
return c.json({
|
|
|
|
id: '123',
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
const hono = new OpenAPIHono()
|
|
|
|
hono.openapi(route, handler)
|
|
|
|
hono.openapi(route, asyncHandler)
|
|
|
|
})
|
2024-05-15 15:51:34 +08:00
|
|
|
})
|