Skip to content

Commit 42e592d

Browse files
PR Batch Testerclaude
andcommitted
test(web): assert the sidebar video source through expect.element
Co-Authored-By: Claude Opus 5.5 <[email protected]>
1 parent c33c907 commit 42e592d

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { describe, expect, it } from "vite-plus/test";
22

3-
import { act, render, stubGlobal } from "../../../test/render";
3+
import { act, render, stubGlobal, type Screen } from "../../../test/render";
44
import { MediaVideoPlayer } from "./MediaVideoPlayer";
55

66
// The observer never reports the video as visible, so it keeps preload="none" and never
@@ -10,13 +10,13 @@ class HiddenIntersectionObserver {
1010
disconnect() {}
1111
}
1212

13-
function videoSrc(container: HTMLElement): string | undefined {
14-
return container.querySelector("video")?.getAttribute("src") ?? undefined;
13+
function expectVideoSrc(screen: Screen, src: string) {
14+
return expect.element(screen.getByLabelText("clip")).toHaveAttribute("src", src);
1515
}
1616

17-
async function loadMetadata(container: HTMLElement) {
17+
async function loadMetadata(screen: Screen) {
1818
await act(() => {
19-
container.querySelector("video")?.dispatchEvent(new Event("loadedmetadata"));
19+
screen.getByLabelText("clip").element().dispatchEvent(new Event("loadedmetadata"));
2020
});
2121
}
2222

@@ -26,33 +26,33 @@ describe("MediaVideoPlayer", () => {
2626
await using screen = await render(
2727
<MediaVideoPlayer src="/asset/first/clip.mp4" label="clip" revision="file-1" />,
2828
);
29-
await loadMetadata(screen.container);
29+
await loadMetadata(screen);
3030

3131
await screen.rerender(
3232
<MediaVideoPlayer src="/asset/renewed/clip.mp4" label="clip" revision="file-1" />,
3333
);
34-
expect(videoSrc(screen.container)).toBe("/asset/first/clip.mp4");
34+
await expectVideoSrc(screen, "/asset/first/clip.mp4");
3535

3636
await screen.rerender(
3737
<MediaVideoPlayer src="/asset/changed/clip.mp4" label="clip" revision="file-2" />,
3838
);
39-
expect(videoSrc(screen.container)).toBe("/asset/changed/clip.mp4");
39+
await expectVideoSrc(screen, "/asset/changed/clip.mp4");
4040

4141
// A second re-sign while the changed file is still loading must not restart that load.
4242
await screen.rerender(
4343
<MediaVideoPlayer src="/asset/changed-renewed/clip.mp4" label="clip" revision="file-2" />,
4444
);
45-
expect(videoSrc(screen.container)).toBe("/asset/changed/clip.mp4");
45+
await expectVideoSrc(screen, "/asset/changed/clip.mp4");
4646
});
4747

4848
it("keeps a loaded paused video while its URL is briefly unavailable", async () => {
4949
using _observer = stubGlobal("IntersectionObserver", HiddenIntersectionObserver);
5050
await using screen = await render(
5151
<MediaVideoPlayer src="/asset/first/clip.mp4" label="clip" revision="file-1" />,
5252
);
53-
await loadMetadata(screen.container);
53+
await loadMetadata(screen);
5454

5555
await screen.rerender(<MediaVideoPlayer src={null} label="clip" revision="mutation-2" />);
56-
expect(videoSrc(screen.container)).toBe("/asset/first/clip.mp4");
56+
await expectVideoSrc(screen, "/asset/first/clip.mp4");
5757
});
5858
});

0 commit comments

Comments
 (0)