






















@@ -561,6 +561,16 @@ describe("argv helpers", () => {
561561argv: ["node", "openclaw", "--", "--timeout=99"],
562562expected: undefined,
563563},
564+{
565+name: "repeated flag uses final value",
566+argv: ["node", "openclaw", "status", "--timeout", "100", "--timeout=200"],
567+expected: "200",
568+},
569+{
570+name: "missing repeated value remains invalid",
571+argv: ["node", "openclaw", "status", "--timeout", "--timeout", "200"],
572+expected: null,
573+},
564574])("extracts flag values: $name", ({ argv, expected }) => {
565575expect(getFlagValue(argv, "--timeout")).toBe(expected);
566576});
@@ -597,17 +607,37 @@ describe("argv helpers", () => {
597607{
598608name: "invalid integer",
599609argv: ["node", "openclaw", "status", "--timeout", "nope"],
600-expected: undefined,
610+expected: null,
601611},
602612{
603613name: "non-decimal integer",
604614argv: ["node", "openclaw", "status", "--timeout", "0x10"],
605-expected: undefined,
615+expected: null,
606616},
607617{
608618name: "partial integer",
609619argv: ["node", "openclaw", "status", "--timeout", "5s"],
610-expected: undefined,
620+expected: null,
621+},
622+{
623+name: "zero",
624+argv: ["node", "openclaw", "status", "--timeout", "0"],
625+expected: null,
626+},
627+{
628+name: "negative integer",
629+argv: ["node", "openclaw", "status", "--timeout", "-5"],
630+expected: null,
631+},
632+{
633+name: "repeated value uses final valid integer",
634+argv: ["node", "openclaw", "status", "--timeout", "nope", "--timeout", "5000"],
635+expected: 5000,
636+},
637+{
638+name: "repeated value rejects final invalid integer",
639+argv: ["node", "openclaw", "status", "--timeout", "5000", "--timeout", "nope"],
640+expected: null,
611641},
612642])("parses positive integer flag values: $name", ({ argv, expected }) => {
613643expect(getPositiveIntFlagValue(argv, "--timeout")).toBe(expected);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。