Skip to content
This repository was archived by the owner on Apr 8, 2026. It is now read-only.

Commit 3fd5cc2

Browse files
committed
chore: add test helper
1 parent b7b11fb commit 3fd5cc2

4 files changed

Lines changed: 39 additions & 26 deletions

File tree

__tests__/api/tree.test.ts

Lines changed: 0 additions & 26 deletions
This file was deleted.

jest.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@ module.exports = {
1616
moduleNameMapper: {
1717
'pages/(.*)$': '<rootDir>/pages/$1',
1818
'libs/(.*)$': '<rootDir>/libs/$1',
19+
'tests/(.*)$': '<rootDir>/tests/$1',
1920
},
2021
}

tests/api/tree.test.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import treeHandler from 'pages/api/tree'
2+
import { mockServer } from 'tests/helper'
3+
4+
describe('/api/tree', () => {
5+
let app: mockServer
6+
7+
beforeEach(async () => {
8+
app = mockServer(treeHandler)
9+
})
10+
11+
afterEach(() => {
12+
app.server.close()
13+
})
14+
15+
test('fetch tree', async () => {
16+
const result = await app.request.get('/api/tree').expect(200)
17+
18+
expect(result.body).toBeDefined()
19+
})
20+
})

tests/helper.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { createServer, IncomingMessage, ServerResponse } from 'http'
2+
import { ApiRequest, ApiResponse } from 'libs/server/connect'
3+
import { NextConnect } from 'next-connect'
4+
import { apiResolver } from 'next/dist/server/api-utils'
5+
import supertest from 'supertest'
6+
7+
export const mockServer = (handler: NextConnect<ApiRequest, ApiResponse>) => {
8+
const requestHandler = (request: IncomingMessage, response: ServerResponse) =>
9+
apiResolver(request, response, undefined, handler, {} as any, true)
10+
const server = createServer(requestHandler)
11+
12+
return {
13+
server,
14+
request: supertest(server),
15+
}
16+
}
17+
18+
export type mockServer = ReturnType<typeof mockServer>

0 commit comments

Comments
 (0)