test(server): add comprehensive edge-case tests for customUpCodes validation

This commit is contained in:
harsh-aghara committed 2026-06-18 22:51:21 +05:30
1 parent 6d433fd0ac
commit 9082cf0826
1 file changed
+56
@@ -243,6 +243,14 @@ describe("monitorValidation — customUpCodes", () => {
expect(parsed.customUpCodes).toEqual([200, 301, 404, 503]);
});
it("accepts non-standard HTTP status codes (Cloudflare, AWS ELB, etc.)", () => {
const parsed = createMonitorBodyValidation.parse({
...baseHttpBody,
customUpCodes: [419, 420, 440, 449, 460, 463, 497, 499, 509, 520, 521, 522, 523, 524, 525, 526, 527, 529, 530, 561],
});
expect(parsed.customUpCodes).toEqual([419, 420, 440, 449, 460, 463, 497, 499, 509, 520, 521, 522, 523, 524, 525, 526, 527, 529, 530, 561]);
});
it("rejects invalid HTTP status codes", () => {
expect(() =>
createMonitorBodyValidation.parse({
@@ -259,6 +267,33 @@ describe("monitorValidation — customUpCodes", () => {
).toThrow();
});
it("rejects fractional or floating-point status codes", () => {
expect(() =>
createMonitorBodyValidation.parse({
...baseHttpBody,
customUpCodes: [200.5],
})
).toThrow();
});
it("rejects status codes below 100", () => {
expect(() =>
createMonitorBodyValidation.parse({
...baseHttpBody,
customUpCodes: [99],
})
).toThrow();
});
it("rejects valid-looking but mathematically unsupported status codes (e.g. 599)", () => {
expect(() =>
createMonitorBodyValidation.parse({
...baseHttpBody,
customUpCodes: [599], // Not in Node's default list nor our expanded list
})
).toThrow();
});
it("defaults to an empty array when not provided", () => {
const parsed = createMonitorBodyValidation.parse(baseHttpBody);
expect(parsed.customUpCodes).toEqual([]);
@@ -273,6 +308,13 @@ describe("monitorValidation — customUpCodes", () => {
expect(parsed.customUpCodes).toEqual([200, 201]);
});
it("accepts non-standard HTTP status codes on edits", () => {
const parsed = editMonitorBodyValidation.parse({
customUpCodes: [419, 420, 440, 449, 460, 463, 497, 499, 509, 520, 521, 522, 523, 524, 525, 526, 527, 529, 530, 561],
});
expect(parsed.customUpCodes).toEqual([419, 420, 440, 449, 460, 463, 497, 499, 509, 520, 521, 522, 523, 524, 525, 526, 527, 529, 530, 561]);
});
it("rejects invalid HTTP status codes on edits", () => {
expect(() =>
editMonitorBodyValidation.parse({
@@ -295,6 +337,20 @@ describe("monitorValidation — customUpCodes", () => {
expect(parsed.monitors[0].customUpCodes).toEqual([404]);
});
it("accepts non-standard HTTP status codes on imported HTTP monitors", () => {
const parsed = importMonitorsBodyValidation.parse({
monitors: [
{
...baseHttpBody,
customUpCodes: [419, 420, 440, 449, 460, 463, 497, 499, 509, 520, 521, 522, 523, 524, 525, 526, 527, 529, 530, 561],
},
],
});
expect(parsed.monitors[0].customUpCodes).toEqual([
419, 420, 440, 449, 460, 463, 497, 499, 509, 520, 521, 522, 523, 524, 525, 526, 527, 529, 530, 561,
]);
});
it("rejects invalid HTTP status codes on imported HTTP monitors", () => {
expect(() =>
importMonitorsBodyValidation.parse({