Skip to content

Commit 25d1572

Browse files
melgarafaelclaude
andcommitted
test(ia): guarda a metade do worker — sabotá-la não reprovava nada
Medido: remover OPENAI_API_KEY do schema de env do worker passava nos testes E no `tsc` (o parâmetro de llmEdgeConfigFromEnv declara a chave como opcional, então um env sem ela é tipo válido). O bug voltaria em silêncio. Com o teste, a mesma sabotagem reprova 1. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0186uhSjxkjwHgMzbkbytbSq
1 parent 8f4cebe commit 25d1572

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

lib/agent-engine/env.test.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,22 @@ describe("loadEnv — vazio é ausente (contrato BYOK do README)", () => {
3838
expect(() => loadEnv(rest)).toThrowError(/SUPABASE_DB_URL/);
3939
});
4040
});
41+
42+
/**
43+
* A metade que NADA guardava. Medido: remover `OPENAI_API_KEY` deste schema não
44+
* reprova nenhum teste E passa no `tsc` — o parâmetro de `llmEdgeConfigFromEnv`
45+
* declara a chave como opcional, então um env sem ela é um tipo válido. O
46+
* resultado seria o bug de origem voltando em silêncio: chave no `.env`, worker
47+
* subindo, agente OpenAI morrendo com "org sem credencial LLM utilizável".
48+
*/
49+
describe("loadEnv — a chave da OpenAI existe no contrato do worker", () => {
50+
it("OPENAI_API_KEY é reconhecida e chega ao env do worker", () => {
51+
const env = loadEnv({ ...REQUIRED, OPENAI_API_KEY: "sk-proj-abc" });
52+
expect(env.OPENAI_API_KEY).toBe("sk-proj-abc");
53+
});
54+
55+
it("vazia continua sendo ausente — mesmo contrato BYOK das demais", () => {
56+
const env = loadEnv({ ...REQUIRED, OPENAI_API_KEY: "" });
57+
expect(env.OPENAI_API_KEY).toBeUndefined();
58+
});
59+
});

0 commit comments

Comments
 (0)