mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-06-21 13:43:14 -04:00
jest fix
This commit is contained in:
@@ -5,14 +5,14 @@ describe("Form Validation", () => {
|
||||
|
||||
beforeEach(() => {
|
||||
document.body.innerHTML = `
|
||||
<form class="send-one-off-form">
|
||||
<form class="send-one-off-form" data-force-focus="True">
|
||||
<label for="test-input">Test Input</label>
|
||||
<input id="test-input" name="testInput" type="text" />
|
||||
<button type="submit">Submit</button>
|
||||
</form>
|
||||
`;
|
||||
|
||||
form = document.querySelector(".send-one-off-form");
|
||||
form = document.querySelector('form[data-force-focus="True"]');
|
||||
input = document.getElementById("test-input");
|
||||
submitButton = form.querySelector("button");
|
||||
|
||||
@@ -59,4 +59,55 @@ describe("Form Validation", () => {
|
||||
|
||||
expect(spy).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
test("Displays error if no radio in group is selected", async () => {
|
||||
document.body.innerHTML = `
|
||||
<form class="send-one-off-form" data-force-focus="True">
|
||||
<fieldset>
|
||||
<legend>Pick one</legend>
|
||||
<input type="radio" id="opt1" name="group" value="1" />
|
||||
<label for="opt1">Option 1</label>
|
||||
<input type="radio" id="opt2" name="group" value="2" />
|
||||
<label for="opt2">Option 2</label>
|
||||
<button type="submit">Submit</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
`;
|
||||
|
||||
form = document.querySelector('form[data-force-focus="True"]');
|
||||
attachValidation();
|
||||
|
||||
form.dispatchEvent(new Event("submit", { bubbles: true }));
|
||||
await new Promise(resolve => setTimeout(resolve, 20));
|
||||
|
||||
const errorElement = document.getElementById("group-error");
|
||||
expect(errorElement).not.toBeNull();
|
||||
expect(errorElement.textContent).toBe("Error: A selection must be made.");
|
||||
});
|
||||
|
||||
test("Removes radio group error when one is selected", async () => {
|
||||
document.body.innerHTML = `
|
||||
<form class="send-one-off-form" data-force-focus="True">
|
||||
<input type="radio" id="radio1" name="group" value="1" />
|
||||
<label for="radio1">Option 1</label>
|
||||
<input type="radio" id="radio2" name="group" value="2" />
|
||||
<label for="radio2">Option 2</label>
|
||||
<button type="submit">Submit</button>
|
||||
</form>
|
||||
`;
|
||||
|
||||
form = document.querySelector('form[data-force-focus="True"]');
|
||||
attachValidation();
|
||||
|
||||
form.dispatchEvent(new Event("submit", { bubbles: true }));
|
||||
await new Promise(resolve => setTimeout(resolve, 20));
|
||||
|
||||
const radioInput = document.getElementById("radio2");
|
||||
radioInput.checked = true;
|
||||
radioInput.dispatchEvent(new Event("change", { bubbles: true }));
|
||||
|
||||
const errorElement = document.getElementById("group-error");
|
||||
expect(errorElement.style.display).toBe("none");
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user