Browse Source

docs(22): add Task 4 for parameters API tests

- Add test to verify parameters field is passed to Replicate/fal.ai APIs
- Tests that UI settings (seed, steps, guidance) reach provider APIs
- Tests that dynamicInputs override parameters when both have same key
handoff-20260429-1057
shrimbly 6 months ago
parent
commit
cf161e9a53
  1. 64
      .planning/phases/22-generate-node-dynamic-input-tests/22-01-PLAN.md

64
.planning/phases/22-generate-node-dynamic-input-tests/22-01-PLAN.md

@ -24,11 +24,13 @@ Output: Complete test coverage for dynamic input flows in GenerateImageNode, Gen
**Existing test files to extend:**
@src/components/__tests__/GenerateImageNode.test.tsx
@src/components/__tests__/GenerateVideoNode.test.tsx
@src/app/api/generate/__tests__/route.test.ts
**Component being tested:**
**Components/routes being tested:**
@src/components/nodes/GenerateImageNode.tsx (lines 464-580 for dynamic handles)
@src/components/nodes/GenerateVideoNode.tsx
@src/components/nodes/ModelParameters.tsx
@src/app/api/generate/route.ts (lines 342-377 for parameters handling)
**Prior Phase Summary (provides test patterns):**
@.planning/phases/17-component-tests/17-03-SUMMARY.md
@ -167,6 +169,63 @@ inputSchema: [
<done>GenerateVideoNode tests match GenerateImageNode coverage for dynamic handles</done>
</task>
<task type="auto">
<name>Task 4: Add API route tests for parameters field</name>
<files>src/app/api/generate/__tests__/route.test.ts</files>
<action>
Add tests to verify the `parameters` field (UI settings) is passed to provider APIs.
**Replicate provider:**
- Should pass parameters to prediction input
- Should merge parameters with dynamicInputs (dynamicInputs take precedence)
**fal.ai provider:**
- Should pass parameters to fal.ai request body
- Should merge parameters with dynamicInputs
Test pattern:
```typescript
it("should pass parameters to prediction input", async () => {
// ... mock setup ...
const request = createMockPostRequest(
{
prompt: "Test prompt",
selectedModel: {
provider: "replicate",
modelId: "stability-ai/sdxl",
displayName: "SDXL",
},
parameters: {
seed: 42,
num_inference_steps: 30,
guidance_scale: 7.5,
},
},
{ "X-Replicate-API-Key": "test-key" }
);
const response = await POST(request);
// Verify parameters were passed to prediction
const createPredictionCall = mockFetch.mock.calls[1];
const requestBody = JSON.parse(createPredictionCall[1].body);
expect(requestBody.input).toEqual(
expect.objectContaining({
seed: 42,
num_inference_steps: 30,
guidance_scale: 7.5,
})
);
});
```
Also test that dynamicInputs override parameters when both have same key.
</action>
<verify>npm test -- src/app/api/generate/__tests__/route.test.ts --testNamePattern="parameters"</verify>
<done>API route tests verify parameters field is passed to Replicate and fal.ai</done>
</task>
</tasks>
<verification>
@ -174,10 +233,12 @@ Before declaring plan complete:
- [ ] `npm test -- src/components/__tests__/ModelParameters.test.tsx` passes
- [ ] `npm test -- src/components/__tests__/GenerateImageNode.test.tsx` passes
- [ ] `npm test -- src/components/__tests__/GenerateVideoNode.test.tsx` passes
- [ ] `npm test -- src/app/api/generate/__tests__/route.test.ts` passes
- [ ] No TypeScript errors
- [ ] Schema loading tested
- [ ] Dynamic handle variations tested
- [ ] Placeholder handles tested
- [ ] Parameters passed to API tested
</verification>
<success_criteria>
@ -186,6 +247,7 @@ Before declaring plan complete:
- ModelParameters component fully tested
- Dynamic input handle rendering fully tested
- Placeholder handle behavior fully tested
- Parameters field passed to provider APIs tested
- Phase 22 complete
</success_criteria>

Loading…
Cancel
Save