27 lines
1004 B
JavaScript
27 lines
1004 B
JavaScript
const test = require("node:test");
|
|
const assert = require("node:assert/strict");
|
|
const request = require("supertest");
|
|
const { app } = require("../src/server");
|
|
|
|
test("public pages load", async () => {
|
|
for (const path of ["/", "/items", "/services", "/about-contact", "/healthz"]) {
|
|
const response = await request(app).get(path);
|
|
assert.equal(response.status < 500, true, `${path} returned ${response.status}`);
|
|
}
|
|
});
|
|
|
|
test("admin redirects to setup or login", async () => {
|
|
const response = await request(app).get("/admin");
|
|
assert.equal([302, 303].includes(response.status), true);
|
|
});
|
|
|
|
test("contact form requires complete fields", async () => {
|
|
const agent = request.agent(app);
|
|
const page = await agent.get("/about-contact");
|
|
const token = /name="_csrf" value="([^"]+)"/.exec(page.text)?.[1];
|
|
const response = await agent
|
|
.post("/contact")
|
|
.send(`_csrf=${encodeURIComponent(token || "")}&name=&email=bad&subject=&message=`);
|
|
assert.equal(response.status, 400);
|
|
});
|