fix(keys): epic-end review round 3 — the part-way clip count shows, busy buttons keep focus, cards say their names
Targeted round over 3cd0c525's fix surfaces: 14 raised, 14 fixed. - VideoEditor: the "only X of Y clips" toast went silent exactly on the job-cap/quota refusal it was written for (req had already reported the error); it now always shows. The cut list holds still while Create queues, and a retry continues the "(i/N)" series. - ChannelPage: Subscribe/Unsubscribe use Button `loading`, "Load more" and ChannelDiscovery's Subscribe block the click with aria-disabled instead of native disabled; busy Block/Hide no longer light up on hover. - listNav: an item can name itself (`navItemAttrs(i, name)`) — Plex posters, seasons, episodes, message rows and download rows pass their title; focus on a toast's Undo keeps the removed card's slot. - AnchoredPopover: the hand-back only for focus-managed surfaces (a hover card no longer pulls focus back); the dead panel-ref check is gone. - AccountPanel: no confirmation mail offered to the demo account; send_failed copy no longer blames the message for an unreachable server. Pager comment points at scrollParent.
This commit is contained in:
@@ -63,12 +63,12 @@ const user = {
|
||||
is_suspended: false,
|
||||
};
|
||||
|
||||
function mount() {
|
||||
function mount(u: typeof user = user) {
|
||||
const qc = new QueryClient({ defaultOptions: { queries: { retry: false } } });
|
||||
render(
|
||||
<QueryClientProvider client={qc}>
|
||||
{/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}
|
||||
<AccountPanel user={user as any} onClose={() => {}} />
|
||||
<AccountPanel user={u as any} onClose={() => {}} />
|
||||
</QueryClientProvider>,
|
||||
);
|
||||
}
|
||||
@@ -148,3 +148,15 @@ describe("the account panel reports a refused recovery action", () => {
|
||||
await waitFor(() => expect(errorMessages()).toContain("users.pendingAccess.activateFailed"));
|
||||
});
|
||||
});
|
||||
|
||||
describe("the account panel on the demo account", () => {
|
||||
// The demo account's address is never confirmed, so "send the confirmation link again" looked
|
||||
// available — and the server refused it as "nothing left to confirm", beside a row reading
|
||||
// "unconfirmed" (deep-review E11 round 3).
|
||||
it("does not offer it a confirmation mail, which the server refuses", async () => {
|
||||
mount({ ...user, is_demo: true });
|
||||
await screen.findByText("users.account.recovery");
|
||||
const resend = screen.getByText("users.account.resend").closest("button")!;
|
||||
expect(resend.hasAttribute("disabled")).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user