snapify-authentik/tests/003-video.spec.ts
2023-04-19 01:32:51 +02:00

50 lines
1.8 KiB
TypeScript

import { expect, test } from "@playwright/test";
test.describe("video", () => {
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('div.mt-6 > button[role="switch"]').click();
});
});