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
@@ -87,10 +87,10 @@ export const search = defineCommand({
text: option(z.string().optional(), {
description: "Free-text keyword search (job title, keyword)",
}),
category: option(z.coerce.number().optional(), {
category: option(z.coerce.number().int().min(1).optional(), {
description: "Category ID",
}),
"jobtitle-id": option(z.coerce.number().optional(), {
"jobtitle-id": option(z.coerce.number().int().min(1).optional(), {
description: "Job title ID from autocomplete results",
}),
municipality: option(z.string().optional(), {