fix(ai-character): 폼 도메인 검증 복구

This commit is contained in:
Yu Sung
2026-08-05 00:34:04 +09:00
parent fb9b550040
commit ca5aa990d3
9 changed files with 290 additions and 14 deletions

View File

@@ -191,6 +191,29 @@ test("AudioContentFormPage reveals preview duration offset inputs only when prev
});
});
test("AudioContentFormPage rejects malformed preview offsets through the submit button", async () => {
// Given
const uploadedBodies: XMLHttpRequestBodyInit[] = [];
renderCreateForm(uploadedBodies);
await fillRequiredCreateFields();
fireEvent.change(screen.getByLabelText("가격"), { target: { value: "1" } });
fireEvent.click(screen.getByLabelText("미리듣기 생성"));
const previewStart = screen.getByLabelText("미리듣기 시작");
const previewEnd = screen.getByLabelText("미리듣기 종료");
// When
fireEvent.change(previewStart, { target: { value: "30" } });
fireEvent.change(previewEnd, { target: { value: "01:00" } });
fireEvent.click(screen.getByRole("button", { name: "생성" }));
// Then
expect(await screen.findAllByText("미리듣기 시간은 HH:MM:SS 형식으로 입력하세요.")).toHaveLength(2);
expect(previewStart).toHaveAttribute("aria-invalid", "true");
expect(previewEnd).toHaveAttribute("aria-invalid", "true");
await waitFor(() => expect(previewStart).toHaveFocus());
expect(uploadedBodies).toHaveLength(0);
});
test("AudioContentFormPage conditionally renders and clears the native scheduled release datetime", async () => {
// Given
renderCreateForm();