Files
DebbieWindlerSeamstress/test/smoke.test.js
2026-07-21 11:48:50 -05:00

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