import { describe, expect, it } from "vitest" ;
import {
INVALID_EXEC_SECRET_REF_IDS,
VALID_EXEC_SECRET_REF_IDS,
} from "../test-utils/secret-ref-test-vectors.js" ;
import { buildSecretInputSchema } from "./secret-input-schema.js" ;
import {
buildOptionalSecretInputSchema,
buildSecretInputArraySchema,
normalizeSecretInputString,
} from "./secret-input.js" ;
describe("plugin-sdk secret input helpers" , () => {
it.each([
{
name: "accepts undefined for optional secret input" ,
run: () => buildOptionalSecretInputSchema().safeParse(undefined).success,
expected: true ,
},
{
name: "accepts arrays of secret inputs" ,
run: () =>
buildSecretInputArraySchema().safeParse([
"sk-plain" ,
{ source: "env" , provider: "default" , id: "OPENAI_API_KEY" },
]).success,
expected: true ,
},
{
name: "normalizes plaintext secret strings" ,
run: () => normalizeSecretInputString(" sk-test " ),
expected: "sk-test" ,
},
])("$name" , ({ run, expected }) => {
expect(run()).toEqual(expected);
});
});
describe("plugin-sdk secret input schema" , () => {
const schema = buildSecretInputSchema();
it("accepts plaintext and valid refs" , () => {
expect(schema.safeParse("sk-plain" ).success).toBe(true );
expect(
schema.safeParse({ source: "env" , provider: "default" , id: "OPENAI_API_KEY" }).success,
).toBe(true );
expect(
schema.safeParse({ source: "file" , provider: "filemain" , id: "/providers/openai/apiKey" })
.success,
).toBe(true );
for (const id of VALID_EXEC_SECRET_REF_IDS) {
expect(schema.safeParse({ source: "exec" , provider: "vault" , id }).success, id).toBe(true );
}
});
it("rejects invalid exec refs" , () => {
for (const id of INVALID_EXEC_SECRET_REF_IDS) {
expect(schema.safeParse({ source: "exec" , provider: "vault" , id }).success, id).toBe(false );
}
});
});
Messung V0.5 in Prozent C=100 H=96 G=97
¤ Dauer der Verarbeitung: 0.2 Sekunden
¤
*© Formatika GbR, Deutschland