Files
openclaw-zero-token/utils/normalize-secret-input.test.ts
sjhu 571e14a236 feat: upgrade to upstream v2026.3.28
Major upgrade from e26988a38 to upstream v2026.3.28 (f9b107928).
Key changes:
- Upstream src/, ui/, extensions/ (89 bundled extensions)
- Zero-token web providers preserved in src/zero-token/
- AskOnce plugin restored and registered as CLI command
- Added missing packages: @anthropic-ai/vertex-sdk, @modelcontextprotocol/sdk
- Fixed tsconfig rootDir, skipLibCheck for plugin-sdk DTS build
- Added askonce to bundled plugin metadata and package.json exports
- Fixed AskOnce CLI command registration (missing commands metadata)
- Restored AskOnce adapter imports (correct 5-level relative paths)
- Removed stale migration artifacts from root directory
2026-03-30 17:58:12 +08:00

36 lines
1.4 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { describe, expect, it } from "vitest";
import { normalizeOptionalSecretInput, normalizeSecretInput } from "./normalize-secret-input.js";
describe("normalizeSecretInput", () => {
it("returns empty string for non-string values", () => {
expect(normalizeSecretInput(undefined)).toBe("");
expect(normalizeSecretInput(null)).toBe("");
expect(normalizeSecretInput(123)).toBe("");
expect(normalizeSecretInput({})).toBe("");
});
it("strips embedded line breaks and surrounding whitespace", () => {
expect(normalizeSecretInput(" sk-\r\nabc\n123 ")).toBe("sk-abc123");
});
it("drops non-Latin1 code points that can break HTTP ByteString headers", () => {
// U+0417 (Cyrillic З) and U+2502 (box drawing │) are > 255.
expect(normalizeSecretInput("key-\u0417\u2502-token")).toBe("key--token");
});
it("preserves Latin-1 characters and internal spaces", () => {
expect(normalizeSecretInput(" café token ")).toBe("café token");
});
});
describe("normalizeOptionalSecretInput", () => {
it("returns undefined when normalized value is empty", () => {
expect(normalizeOptionalSecretInput(" \r\n ")).toBeUndefined();
expect(normalizeOptionalSecretInput("\u0417\u2502")).toBeUndefined();
});
it("returns normalized value when non-empty", () => {
expect(normalizeOptionalSecretInput(" key-\u0417 ")).toBe("key-");
});
});