snapify-authentik/tests/002-video.spec.ts
2023-04-15 22:57:09 +02:00

44 lines
1.6 KiB
TypeScript

import { expect, test } from "@playwright/test";
test("should be able to view video", async ({ page }) => {
await page.goto("http://localhost:3000/videos");
await page.locator("div.grid > a:nth-child(1)").click();
await expect(page).toHaveURL(/http:\/\/localhost:3000\/share\/[A-Za-z0-9]+/);
const video = page.locator("video");
expect(video).toBeTruthy();
await video.evaluate((v: HTMLVideoElement) => v.play());
const isPlaying = await video.evaluate((v: HTMLVideoElement) => !v.paused);
expect(isPlaying).toBe(true);
await video.click();
const isPaused = await video.evaluate((v: HTMLVideoElement) => v.paused);
expect(isPaused).toBe(true);
});
test("should be able to rename video", async ({ page }) => {
const randomTitle = "Random title " + Math.random().toString();
await page.goto("http://localhost:3000/videos");
await page.locator("div.grid > a:nth-child(1)").click();
await expect(page).toHaveURL(/http:\/\/localhost:3000\/share\/[A-Za-z0-9]+/);
await page.locator("button > svg").click();
await page.getByText("Rename").click();
await page.click("#title");
await page.fill("#title", randomTitle);
await page.getByText("Save").click();
expect(
await page.locator("div > span.text-lg.font-medium").textContent()
).toBe(randomTitle);
});
test("should be able to share video", async ({ page }) => {
await page.goto("http://localhost:3000/videos");
await page.locator("div.grid > a:nth-child(1)").click();
await expect(page).toHaveURL(/http:\/\/localhost:3000\/share\/[A-Za-z0-9]+/);
await page.getByText("Share").click();
await page.locator('button[role="switch"]').click();
await page.waitForTimeout(5000);
});