Give builder fields persistent labels, treat description as optional, and validate save-progress email with a real form.

Name stays required; description is a labelled optional textarea. Email uses native validity and form submit. Drop the dead workshop link and fix a few copy errors.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
adilallo
2026-09-10 11:37:41 -06:00
co-authored by Cursor
parent 130663f930
commit 42d83c8b62
33 changed files with 437 additions and 125 deletions
+6 -6
View File
@@ -1044,8 +1044,9 @@ describe("FinalReviewScreen — edit published title and description", () => {
fireEvent.click(await screen.findByTestId("rule-title-edit"));
const dialog = await screen.findByRole("dialog");
expect(within(dialog).getByText(/Community name/i)).toBeInTheDocument();
const input = within(dialog).getByRole("textbox");
const input = within(dialog).getByRole("textbox", {
name: /Community name/i,
});
fireEvent.change(input, { target: { value: "Renamed Commons" } });
fireEvent.click(within(dialog).getByRole("button", { name: "Save" }));
@@ -1076,10 +1077,9 @@ describe("FinalReviewScreen — edit published title and description", () => {
fireEvent.click(await screen.findByTestId("rule-description-edit"));
const dialog = await screen.findByRole("dialog");
expect(
within(dialog).getByText(/Community description/i),
).toBeInTheDocument();
const input = within(dialog).getByRole("textbox");
const input = within(dialog).getByRole("textbox", {
name: /Community description/i,
});
fireEvent.change(input, { target: { value: "Updated copy" } });
fireEvent.click(within(dialog).getByRole("button", { name: "Save" }));