add: unit and integration testing
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
const request = require("supertest");
|
||||
const app = require("../src/app");
|
||||
|
||||
describe("GET /search", () => {
|
||||
afterEach(() => {
|
||||
jest.restoreAllMocks();
|
||||
});
|
||||
|
||||
test("returns 400 when query is missing", async () => {
|
||||
const response = await request(app).get("/search");
|
||||
|
||||
expect(response.status).toBe(400);
|
||||
expect(response.text).toBe("Missing search query");
|
||||
});
|
||||
|
||||
test("returns filtered search results", async () => {
|
||||
global.fetch = jest.fn().mockResolvedValue({
|
||||
json: jest.fn().mockResolvedValue({
|
||||
results: [
|
||||
{
|
||||
url: "https://example.com",
|
||||
title: "Example",
|
||||
content: "Content",
|
||||
irrelevant: "removed"
|
||||
}
|
||||
]
|
||||
})
|
||||
});
|
||||
|
||||
const response = await request(app)
|
||||
.get("/search")
|
||||
.query({ query: "nodejs" });
|
||||
|
||||
expect(response.status).toBe(200);
|
||||
expect(response.headers["content-type"]).toMatch(/application\/json/);
|
||||
expect(response.headers["content-disposition"]).toContain(
|
||||
'attachment; filename="output.json"'
|
||||
);
|
||||
|
||||
expect(response.body).toEqual([
|
||||
{
|
||||
url: "https://example.com",
|
||||
title: "Example",
|
||||
content: "Content"
|
||||
}
|
||||
]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user