fix(cli): reject negative and fractional filter flags in Danish portal CLIs (#281)

Follow-up to #191: it tightened page/limit/per-page, but five filter flags still used bare z.coerce.number() and accepted negative and fractional values that were sent raw to the portals (e.g. --jobage=-5, --radius=2.5).

jobindex --jobage, jobnet --radius, jobdanmark --category/--jobtitle-id and jobbank --company now use .int().min(1), mirroring #191. Adds 8 network-free regression tests (a negative and a fractional case per flag) using the same validation-error pattern as the existing cli-flag-validation suites.
This commit is contained in:
Oscar Madera
2026-08-05 06:27:43 +02:00
committed by GitHub
parent fcefb8150f
commit eef9c47461
8 changed files with 64 additions and 9 deletions
@@ -13,7 +13,7 @@ export const search = defineCommand({
page: option(z.coerce.number().int().min(1).default(1), {
description: "Page number (1-indexed)",
}),
jobage: option(z.coerce.number().default(9999), {
jobage: option(z.coerce.number().int().min(1).default(9999), {
description: "Max age of posting in days: 1, 7, 14, 30, or 9999 (all)",
}),
sort: option(z.string().default("score"), {