fix(ui): review round 2 — reveal floor, failed next page, count states, row Play
- DataTable: the reveal floor holds only in the view it was made for (Channels never clears its follow, so every later sort mounted rows up to it) - Feed + Plex browse: a failed next page stops the read-ahead and shows a row that retries, instead of re-requesting it once a round-trip - the YouTube Load more click uses nextPageOnClick; a contract pins NEXT_PAGE to the read-aheads and the click sites to nextPageOnClick - ItemCount: a failed count says so; a stale one says updating to a screen reader - the narrow-picture Play lift applies only where a hover row is there to clear - PlayerModal: one description ladder for the popover and the panel, both tested - plexImage contract reads every img src, any attribute order - Tabs comment names who persists the sub-tab
This commit is contained in:
@@ -563,6 +563,19 @@ describe("PlayerModal — the side panel on a wide window", () => {
|
||||
expect(detail).toHaveBeenCalledTimes(2);
|
||||
});
|
||||
|
||||
// E31 review 2: the popover below 1280 px said it the same way only by a copy nobody tested.
|
||||
it("says it in the description popover below 1280 px too", async () => {
|
||||
wideWindow(false);
|
||||
vi.spyOn(api, "videoDetail").mockRejectedValue(new Error("boom"));
|
||||
const A = vid("A", 0);
|
||||
renderModal(
|
||||
<PlayerModal video={A} queue={[A]} startIndex={0} onClose={() => {}} onState={() => {}} />,
|
||||
);
|
||||
fireEvent.click(screen.getByRole("button", { name: "player.description" }));
|
||||
expect(await screen.findByText("player.descriptionFailed")).toBeTruthy();
|
||||
expect(screen.queryByText("player.noDescription")).toBeNull();
|
||||
});
|
||||
|
||||
it("keeps the details under the video below 1280 px", () => {
|
||||
wideWindow(false);
|
||||
vi.spyOn(api, "videoDetail").mockReturnValue(new Promise(() => {}));
|
||||
|
||||
Reference in New Issue
Block a user