我正在為 Next.js 應用程式中的 API 路由撰寫集成測驗,我想知道將index.test.ts檔案放在/pages目錄下是否有任何問題。我希望測驗盡可能接近檔案,而不是必須在__test__目錄中映射專案結構。
./pages/api/path/index.ts
handler.get(async (req: NextApiRequest, res: NextApiResponse) => {
...
});
export default handler;
./pages/api/path/index.test.ts
import { testClient } from "__test__/utils/testClient";
describe("Testing API POST: /api", () => {
test("Should return 401 when not authenticated", async () => {
const request = testClient({ handler });
const res = await request.post("/api/applications");
expect(res.status).toEqual(401);
});
});
uj5u.com熱心網友回復:
默認情況下,Next.js 將考慮任何以 、 或檔案夾下的檔案結尾tsx的檔案,ts以用于構建頁面/API 路由和路由。jsxjspages
從自定義頁面擴展檔案:
Next.js 假定目錄中的每個 tsx/ts/jsx/js 檔案
pages都是一個頁面或 API 路由,并且可能會暴露容易受到拒絕服務攻擊的意外路由,或者在構建生產包時拋出如下錯誤
添加在檔案夾(或任何子檔案夾)中命名index.test.ts的pages檔案將包含該檔案作為實際頁面,并可能在構建期間引發錯誤。
您可以通過修改 Next.js 期望使用pageExtensions.next.config.js
module.exports = {
// Default value is ['tsx', 'ts', 'jsx', 'js']
pageExtensions: ['page.tsx', 'page.ts', 'page.jsx', 'page.js']
}
使用此配置,將僅考慮具有上述擴展名的頁面。因此,您可以具有以下pages檔案夾結構,以及位于同一位置的測驗檔案。
pages/
├─ api/
│ ├─ path.page.ts
│ └─ path.test.ts
├─ _app.page.ts
├─ _document.page.ts
├─ index.page.ts
└─ index.test.ts
兩者都path.test.ts將index.test.ts被忽略。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/422903.html
標籤:
上一篇:如何為reqwest撰寫測驗?
