Files
searcher/app/test/app.test.js
T

49 lines
1.2 KiB
JavaScript

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"
}
]);
});
});