diff --git a/packages/web/src/components/prompt-skill-autocomplete.test.tsx b/packages/web/src/components/prompt-skill-autocomplete.test.tsx index 170826ecb9..734ccbf631 100644 --- a/packages/web/src/components/prompt-skill-autocomplete.test.tsx +++ b/packages/web/src/components/prompt-skill-autocomplete.test.tsx @@ -64,6 +64,7 @@ describe("PromptSkillTextarea", () => { expect(screen.getByTestId("prompt-skill-suggestions")).not.toHaveAttribute("role"); expect(input).toHaveAttribute("aria-autocomplete", "list"); expect(input).not.toHaveAttribute("aria-expanded"); + expect(screen.getByRole("status")).toHaveTextContent("2 managed skill suggestions available."); await user.keyboard("{ArrowDown}{Enter}"); expect(input).toHaveValue("$release-notes "); @@ -110,15 +111,18 @@ describe("PromptSkillTextarea", () => { "true" ); expect(screen.getByText("Loading managed skills...")).toBeInTheDocument(); + expect(screen.getByRole("status")).toHaveTextContent("Loading managed skill suggestions."); rerender(); expect(screen.getByText("No managed skills match this session.")).toBeInTheDocument(); + expect(screen.getByRole("status")).toHaveTextContent("No managed skill suggestions available."); expect(screen.getByTestId("prompt-skill-suggestions")).toHaveClass("bottom-full"); rerender(); expect( screen.getByText("Managed skills could not be loaded. Try again shortly.") ).toBeInTheDocument(); + expect(screen.getByRole("status")).toHaveTextContent("Managed skill suggestions unavailable."); }); it("does not insert a completion beyond the prompt limit", async () => { diff --git a/packages/web/src/components/prompt-skill-autocomplete.tsx b/packages/web/src/components/prompt-skill-autocomplete.tsx index fea71a1f02..8322b4a616 100644 --- a/packages/web/src/components/prompt-skill-autocomplete.tsx +++ b/packages/web/src/components/prompt-skill-autocomplete.tsx @@ -78,6 +78,15 @@ export const PromptSkillTextarea = forwardRef { @@ -217,6 +226,9 @@ export const PromptSkillTextarea = forwardRef + + {suggestionStatus} + {open && completion && (