Skip to content

Commit

Permalink
Merge branch 'master' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
alexandercerutti committed Jan 23, 2024
2 parents d6f12bf + f8e090e commit 5fdac32
Show file tree
Hide file tree
Showing 25 changed files with 766 additions and 739 deletions.
68 changes: 47 additions & 21 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/captions-renderer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
},
"homepage": "https://github.com/alexandercerutti/sub37#readme",
"devDependencies": {
"@playwright/test": "^1.28.1"
"@playwright/test": "^1.41.1"
},
"files": [
"lib/**/*.+(js|d.ts)!(*.map)"
Expand Down
54 changes: 54 additions & 0 deletions packages/captions-renderer/specs/RendererFixture.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import { type Locator, test as base } from "@playwright/test";
import { FakeHTMLVideoElement } from "../../sample/src/components/customElements/fake-video";

interface RendererFixture {
getFakeVideo(): Locator;
pauseServing(): Promise<void>;
seekToSecond(atSecond: number): Promise<void>;
waitForEvent(event: "playing"): Promise<void>;
}

const SUB37_SAMPLE_PAGE_PATH = "./pages/sub37-example/index.html";

export const RendererFixture = base.extend<RendererFixture>({
page({ page }, use) {
page.goto(SUB37_SAMPLE_PAGE_PATH);
return use(page);
},
getFakeVideo({ page }, use) {
return use(() => page.locator("fake-video"));
},
waitForEvent({ getFakeVideo }, use) {
return use(async (eventName) => {
const videoElement = getFakeVideo();

return videoElement.evaluate<void, { eventName: string }, FakeHTMLVideoElement>(
(element, { eventName }) => {
return new Promise<void>((resolve) => {
element.addEventListener(eventName, () => resolve());
});
},
{ eventName },
);
});
},
pauseServing({ getFakeVideo }, use) {
return use(async () => {
const videoElement = getFakeVideo();
await videoElement.evaluate<void, void, FakeHTMLVideoElement>((element) => {
element.pause();
}, undefined);
});
},
seekToSecond({ getFakeVideo }, use) {
return use(async (atSecond) => {
const videoElement = getFakeVideo();
await videoElement.evaluate<void, { atSecond: number }, FakeHTMLVideoElement>(
(element, { atSecond }) => {
element.currentTime = atSecond;
},
{ atSecond },
);
});
},
});
Loading

0 comments on commit 5fdac32

Please sign in to comment.