Implement CE-WP-0010 Annotate & Attributes UX.
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s

Rename Review→Annotate; Capture keeps Evidence and adds Attributes column
(no bottom strip); evidence/attribute filters; card→citation connectors via
shared Overlay bridges; finish workplan T01–T07.
This commit is contained in:
tegwick 2026-07-30 19:41:42 +02:00
parent dc7d8f7ce8
commit e9f7676a1a
15 changed files with 241 additions and 437 deletions

View file

@ -104,13 +104,22 @@ describe("Capture — field add/edit UX (CE-WP-0007-T10/T11)", () => {
await user.selectOptions(screen.getByTestId("field-add-type-select"), "date");
await user.click(screen.getByTestId("field-add-save"));
const hearingInput = await screen.findByLabelText("Hearing date");
const hearingInput = await waitFor(() => {
const inputs = Array.from(
document.querySelectorAll('input[type="date"]'),
) as HTMLInputElement[];
const match = inputs.find((el) =>
(el.labels?.[0]?.textContent ?? "").includes("Hearing date"),
);
if (!match) throw new Error("expected Hearing date input");
return match;
});
expect(hearingInput.getAttribute("type")).toBe("date");
},
);
it(
"edits an existing field label and type via the pencil icon",
"edits an existing attribute key and type via the pencil icon",
{ timeout: 15000 },
async () => {
const user = userEvent.setup();
@ -130,8 +139,8 @@ describe("Capture — field add/edit UX (CE-WP-0007-T10/T11)", () => {
);
await user.click(screen.getByTestId("field-edit-summary-save"));
await screen.findByLabelText("Matter summary");
expect(screen.queryByLabelText("Summary of the matter")).toBeNull();
await screen.findByRole("textbox", { name: /Matter summary/ });
expect(screen.queryByRole("textbox", { name: /Summary of the matter/ })).toBeNull();
},
);
@ -156,7 +165,7 @@ describe("Capture — field add/edit UX (CE-WP-0007-T10/T11)", () => {
await user.type(addLabel, "Custom slot");
await user.click(screen.getByTestId("field-add-save"));
const customField = await screen.findByLabelText("Custom slot");
const customField = await screen.findByRole("textbox", { name: /Custom slot/ });
await user.click(customField);
const stripCard = screen.getByRole("button", { name: /Link to custom field/ });