fix: share, upload, crop, auto-skip, tag chips and See all hold what they claim
- Share: a link that expired is never copied (the dialog and one-click Share pick a live one, else make one), says it expired, and the copy-on-open claim clears on the next copy. - A password-protected file link asks to open a file, not to watch a video. - Upload: Cancel, the close button or the backdrop while naming a folder makes no folder; a failed refetch keeps the target; a folder being made says so. - Crop: an infinite number is dropped, not a 500; an unprobed clip's size follows a shown-size crop; the edit_spec docs name frame_w/frame_h; the join and rotated paths are tested. - Auto-skip: the wait gives way on a marker too short for it, so the skip still fires. - Tag chips count the followed channels (subscribed_count) and a toggled chip keeps the focus. - Continue watching's See all sorts by last watched when in progress was already on.
This commit is contained in:
@@ -281,6 +281,19 @@ describe("WatchPage honest failures", () => {
|
||||
return page;
|
||||
}
|
||||
|
||||
it.each([
|
||||
[{ kind: "file", video: true }, "This video is password-protected", "Watch"],
|
||||
[{ kind: "file", video: false }, "This file is password-protected", "Open"],
|
||||
[{ kind: "folder", video: false }, "This folder is password-protected", "Open"],
|
||||
[{}, "This video is password-protected", "Watch"],
|
||||
])("a password link that opens %o asks in its words", async (kind, title, button) => {
|
||||
window.history.replaceState({}, "", "/file/tok-lock");
|
||||
mockMeta({ needs_password: true, ...kind });
|
||||
const page = render(<WatchPage />);
|
||||
await page.findByText(title);
|
||||
expect(page.getByRole("button", { name: button })).toBeTruthy();
|
||||
});
|
||||
|
||||
it("too many password tries says so, and keeps the form", async () => {
|
||||
window.history.replaceState({}, "", "/watch/tok-429");
|
||||
const page = await tryPassword(async () => res(429));
|
||||
|
||||
Reference in New Issue
Block a user