fix(ai-character): 폼 도메인 검증 복구
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user