Skip to content

Commit 97e8dee

Browse files
committed
🔧 fix: #1609 calling afterResponse with aot: false
1 parent c95af80 commit 97e8dee

File tree

3 files changed

+64
-41
lines changed

3 files changed

+64
-41
lines changed

example/a.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ new Elysia({ aot: false })
1010
(app) => app.get('/test', () => 'afterResponse')
1111
)
1212
.get('/', () => 'hi')
13+
.listen(3000)

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -820,6 +820,7 @@ export default class Elysia<
820820
route: path
821821
})
822822

823+
823824
const encoded = encodePath(loosePath)
824825
if (loosePath !== encoded)
825826
this.router.dynamic.add(method, loosePath, {

test/core/dynamic.test.ts

Lines changed: 62 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -694,47 +694,68 @@ describe('Dynamic Mode', () => {
694694
})
695695
})
696696

697-
it('handle query array reference in multiple reference format', async () => {
698-
const IdsModel = new Elysia().model({
699-
name: t.Object({
700-
name: t.Array(t.String())
701-
})
702-
})
703-
704-
const app = new Elysia({ aot: false })
705-
.use(IdsModel)
706-
.get('/', ({ query }) => query, {
707-
name: 'ids'
708-
})
709-
710-
const data = await app
711-
.handle(req('/?names=rapi&names=anis'))
712-
.then((x) => x.json())
713-
714-
expect(data).toEqual({
715-
names: ['rapi', 'anis']
716-
})
717-
})
718-
719-
it('handle query array reference in multiple reference format', async () => {
720-
const IdsModel = new Elysia().model({
721-
name: t.Object({
722-
name: t.Array(t.String())
723-
})
724-
})
697+
it('call local afterResponse on aot: false', async () => {
698+
let called = false
725699

726700
const app = new Elysia({ aot: false })
727-
.use(IdsModel)
728-
.get('/', ({ query }) => query, {
729-
name: 'ids'
730-
})
731-
732-
const data = await app
733-
.handle(req('/?names=rapi&names=anis'))
734-
.then((x) => x.json())
735-
736-
expect(data).toEqual({
737-
names: ['rapi', 'anis']
738-
})
739-
})
701+
.guard(
702+
{
703+
afterResponse: () => {
704+
called = true
705+
}
706+
},
707+
(app) => app.get('/test', () => 'afterResponse')
708+
)
709+
.get('/', () => 'hi')
710+
711+
const value = await app.handle(req('/test')).then((x) => x.text())
712+
await Bun.sleep(6.7)
713+
714+
expect(value).toBe('afterResponse')
715+
expect(called).toBeTrue()
716+
})
717+
718+
// it('handle query array reference in multiple reference format', async () => {
719+
// const IdsModel = new Elysia().model({
720+
// name: t.Object({
721+
// name: t.Array(t.String())
722+
// })
723+
// })
724+
725+
// const app = new Elysia({ aot: false })
726+
// .use(IdsModel)
727+
// .get('/', ({ query }) => query, {
728+
// query: 'name'
729+
// })
730+
731+
// const data = await app
732+
// .handle(req('/?names=rapi&names=anis'))
733+
// .then((x) => x.json())
734+
735+
// expect(data).toEqual({
736+
// names: ['rapi', 'anis']
737+
// })
738+
// })
739+
740+
// it('handle query array reference in multiple reference format', async () => {
741+
// const IdsModel = new Elysia().model({
742+
// name: t.Object({
743+
// name: t.Array(t.String())
744+
// })
745+
// })
746+
747+
// const app = new Elysia({ aot: false })
748+
// .use(IdsModel)
749+
// .get('/', ({ query }) => query, {
750+
// query: 'name'
751+
// })
752+
753+
// const data = await app
754+
// .handle(req('/?names=rapi&names=anis'))
755+
// .then((x) => x.json())
756+
757+
// expect(data).toEqual({
758+
// names: ['rapi', 'anis']
759+
// })
760+
// })
740761
})

0 commit comments

Comments
 (0)