From 43a6a565ebfd97a63f8c70550f66c835c2603a33 Mon Sep 17 00:00:00 2001 From: Affaan Mustafa Date: Fri, 24 Jul 2026 00:30:33 -0400 Subject: [PATCH] test: reject empty qualification nodes --- scripts/ito.js | 7 +++++-- tests/scripts/ito-cli-bridge.test.js | 12 ++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/ito.js b/scripts/ito.js index f03821d23..8ba23ffb1 100755 --- a/scripts/ito.js +++ b/scripts/ito.js @@ -86,7 +86,7 @@ function requiredOptionValue(args, option) { throw new Error(`${option} is required exactly once for live node qualification.`); } const value = args[indexes[0] + 1]; - if (!value || value.startsWith("--")) { + if (!value?.trim() || value.startsWith("--")) { throw new Error(`${option} requires a non-empty value for live node qualification.`); } return value; @@ -104,7 +104,10 @@ function validateNodeQualificationArgs(args, environment) { ); } requiredOptionValue(args, "--cluster"); - requiredOptionValue(args, "--nodes"); + const nodes = requiredOptionValue(args, "--nodes"); + if (!nodes.split(",").every((node) => node.trim().length > 0)) { + throw new Error("--nodes must explicitly list one or more non-empty nodes."); + } const configDirectory = requiredOptionValue(args, "--config-dir"); if (!path.isAbsolute(configDirectory)) { throw new Error("--config-dir must be an existing absolute directory."); diff --git a/tests/scripts/ito-cli-bridge.test.js b/tests/scripts/ito-cli-bridge.test.js index c9a458819..7f52d469b 100644 --- a/tests/scripts/ito-cli-bridge.test.js +++ b/tests/scripts/ito-cli-bridge.test.js @@ -243,6 +243,18 @@ function main() { env: { ITO_ENABLE_SIXTYTWO_LIVE: "1" }, error: /--nodes/, }, + { + label: "empty node list", + args: [ + "ito", "evals", + "--cluster", "clu_prod_example", + "--live-sixtytwo", + "--nodes", ",", + "--config-dir", "__CONFIG__", + ], + env: { ITO_ENABLE_SIXTYTWO_LIVE: "1" }, + error: /--nodes/, + }, { label: "missing cluster", args: [