Nick: map e2e tests

This commit is contained in:
Nicolas 2024-11-20 17:03:04 -08:00
parent 6fbfeafe38
commit aa26dbe74e

View File

@ -0,0 +1,117 @@
import request from "supertest";
import dotenv from "dotenv";
dotenv.config();
const TEST_URL = "http://127.0.0.1:3002";
describe("E2E Tests for Map API Routes", () => {
it.concurrent(
"(feat-search)should return links containing 'smart-crawl'",
async () => {
const response = await request(TEST_URL)
.post("/v1/map")
.set("Authorization", `Bearer ${process.env.TEST_API_KEY}`)
.set("Content-Type", "application/json")
.send({
url: "https://firecrawl.dev",
sitemapOnly: false,
search: "smart-crawl",
});
console.log(response.body);
expect(response.statusCode).toBe(200);
expect(response.body).toHaveProperty("links");
expect(response.body.links.length).toBeGreaterThan(0);
expect(response.body.links[0]).toContain("firecrawl.dev/smart-crawl");
},
60000
);
it.concurrent(
"(feat-subdomains) should return mapped links for firecrawl.dev with subdomains included",
async () => {
const response = await request(TEST_URL)
.post("/v1/map")
.set("Authorization", `Bearer ${process.env.TEST_API_KEY}`)
.set("Content-Type", "application/json")
.send({
url: "https://firecrawl.dev",
sitemapOnly: false,
includeSubdomains: true,
});
console.log(response.body);
expect(response.statusCode).toBe(200);
expect(response.body).toHaveProperty("links");
expect(response.body.links.length).toBeGreaterThan(0);
expect(response.body.links[response.body.links.length - 1]).toContain(
"docs.firecrawl.dev"
);
},
60000
);
it.concurrent(
"(feat-sitemap-only) should return mapped links for firecrawl.dev with sitemap only",
async () => {
const response = await request(TEST_URL)
.post("/v1/map")
.set("Authorization", `Bearer ${process.env.TEST_API_KEY}`)
.set("Content-Type", "application/json")
.send({
url: "https://firecrawl.dev",
sitemapOnly: true,
});
console.log(response.body);
expect(response.statusCode).toBe(200);
expect(response.body).toHaveProperty("links");
expect(response.body.links.length).toBeGreaterThan(0);
expect(response.body.links[response.body.links.length - 1]).not.toContain(
"docs.firecrawl.dev"
);
},
60000
);
it.concurrent(
"(feat-limit) should return mapped links for firecrawl.dev with a limit",
async () => {
const response = await request(TEST_URL)
.post("/v1/map")
.set("Authorization", `Bearer ${process.env.TEST_API_KEY}`)
.set("Content-Type", "application/json")
.send({
url: "https://firecrawl.dev",
sitemapOnly: false,
limit: 10,
});
console.log(response.body);
expect(response.statusCode).toBe(200);
expect(response.body).toHaveProperty("links");
expect(response.body.links.length).toBeLessThanOrEqual(10);
},
60000
);
it.concurrent(
"(feat-sitemap-large) should return more than 1900 links for geekflare sitemap",
async () => {
const response = await request(TEST_URL)
.post("/v1/map")
.set("Authorization", `Bearer ${process.env.TEST_API_KEY}`)
.set("Content-Type", "application/json")
.send({
url: "https://geekflare.com/sitemap_index.xml",
sitemapOnly: true,
});
console.log(response.body);
expect(response.statusCode).toBe(200);
expect(response.body).toHaveProperty("links");
expect(response.body.links.length).toBeGreaterThan(1900);
},
60000
);
});