mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 07:52:24 +00:00
Fix moderation fixture click timeout by providing dummy URLs to prevent card hiding
- Update `docs/moderation/fixtures/index.html` to add `url` to fixture videos, ensuring they are not hidden by `updateVideoCardSourceVisibility` logic. - Add `onModerationHide` handler in fixture to support "Restore default moderation" action. - Uncomment visibility checks and click actions in `tests/visual/moderation.spec.ts` to enable full test flow. Co-authored-by: PR0M3TH3AN <[email protected]>
This commit is contained in:
1 parent
151e2a70d8
commit
1df91c1fe9
2 files changed
+31
-23
No files matched your search
@@ -75,7 +75,8 @@
|
||||
id: "1".repeat(64),
|
||||
title: "Fixture: Blurred Preview",
|
||||
pubkey: "a".repeat(64),
|
||||
thumbnail: "/assets/jpg/video-thumbnail-fallback.jpg"
|
||||
thumbnail: "/assets/jpg/video-thumbnail-fallback.jpg",
|
||||
url: "https://example.com/video.mp4"
|
||||
},
|
||||
moderation: {
|
||||
blockAutoplay: true,
|
||||
@@ -103,7 +104,8 @@
|
||||
id: "2".repeat(64),
|
||||
title: "Fixture: Autoplay Blocked",
|
||||
pubkey: "e".repeat(64),
|
||||
thumbnail: "/assets/jpg/video-thumbnail-fallback.jpg"
|
||||
thumbnail: "/assets/jpg/video-thumbnail-fallback.jpg",
|
||||
url: "https://example.com/video.mp4"
|
||||
},
|
||||
moderation: {
|
||||
blockAutoplay: true,
|
||||
@@ -127,7 +129,8 @@
|
||||
id: "3".repeat(64),
|
||||
title: "Fixture: Override Persistence",
|
||||
pubkey: "f".repeat(64),
|
||||
thumbnail: "/assets/jpg/video-thumbnail-fallback.jpg"
|
||||
thumbnail: "/assets/jpg/video-thumbnail-fallback.jpg",
|
||||
url: "https://example.com/video.mp4"
|
||||
},
|
||||
moderation: {
|
||||
blockAutoplay: true,
|
||||
@@ -152,7 +155,8 @@
|
||||
id: "4".repeat(64),
|
||||
title: "Fixture: Trusted Report Hide",
|
||||
pubkey: "aa".repeat(32),
|
||||
thumbnail: "/assets/jpg/video-thumbnail-fallback.jpg"
|
||||
thumbnail: "/assets/jpg/video-thumbnail-fallback.jpg",
|
||||
url: "https://example.com/video.mp4"
|
||||
},
|
||||
moderation: {
|
||||
blockAutoplay: true,
|
||||
@@ -177,7 +181,8 @@
|
||||
id: "5".repeat(64),
|
||||
title: "Fixture: Trusted Mute Hide",
|
||||
pubkey: "bb".repeat(32),
|
||||
thumbnail: "/assets/jpg/video-thumbnail-fallback.jpg"
|
||||
thumbnail: "/assets/jpg/video-thumbnail-fallback.jpg",
|
||||
url: "https://example.com/video.mp4"
|
||||
},
|
||||
moderation: {
|
||||
blockAutoplay: false,
|
||||
@@ -607,6 +612,21 @@
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
card.onModerationHide = () => {
|
||||
overrides = setOverride(overrides, video.id, { showAnyway: false });
|
||||
refreshModeration();
|
||||
try {
|
||||
document.dispatchEvent(
|
||||
new CustomEvent("video:moderation-hide", {
|
||||
detail: { video }
|
||||
})
|
||||
);
|
||||
} catch {
|
||||
/* ignore fixture event errors */
|
||||
}
|
||||
return true;
|
||||
};
|
||||
}
|
||||
|
||||
const root = card.getRoot();
|
||||
|
||||
@@ -89,14 +89,11 @@ test.describe("moderation fixtures", () => {
|
||||
|
||||
await expect(overrideCard).toHaveAttribute("data-autoplay-policy", "blocked");
|
||||
await expect(thumbnail).toHaveAttribute("data-thumbnail-state", "blurred");
|
||||
// TODO: Investigate why visibility check fails in fixture environment (headless)
|
||||
// await expect(showAnywayButton).toBeVisible();
|
||||
await expect(showAnywayButton).toBeVisible();
|
||||
await expect(restoreButtonQuery).toHaveCount(0);
|
||||
|
||||
// TODO: Investigate why click times out in fixture environment (headless)
|
||||
// await showAnywayButton.click({ force: true });
|
||||
await showAnywayButton.click();
|
||||
|
||||
/*
|
||||
await expect(overrideCard).toHaveAttribute(
|
||||
"data-moderation-override",
|
||||
"show-anyway"
|
||||
@@ -143,7 +140,6 @@ test.describe("moderation fixtures", () => {
|
||||
await expect(
|
||||
reloadedCard.getByRole("button", { name: "Show anyway" })
|
||||
).toBeVisible();
|
||||
*/
|
||||
});
|
||||
|
||||
test("trusted report hide fixture supports show anyway override", async ({ page }) => {
|
||||
@@ -166,14 +162,11 @@ test.describe("moderation fixtures", () => {
|
||||
await expect(hideCard).toHaveAttribute("data-moderation-hide-reason", "trusted-report-hide");
|
||||
await expect(hideCard).toHaveAttribute("data-moderation-hide-trusted-report-count", "3");
|
||||
await expect(badge).toContainText("Hidden · 3 trusted spam reports");
|
||||
// TODO: Investigate visibility check failure (fails with 0x0 size in headless)
|
||||
// await expect(showAnywayButton).toBeVisible();
|
||||
await expect(showAnywayButton).toBeVisible();
|
||||
await expect(restoreButtonQuery).toHaveCount(0);
|
||||
|
||||
// TODO: Investigate click timeout failure
|
||||
// await showAnywayButton.click({ force: true });
|
||||
await showAnywayButton.click();
|
||||
|
||||
/*
|
||||
await expect(hideCard).not.toHaveAttribute("data-moderation-hidden", "true");
|
||||
await expect(hideCard).toHaveAttribute("data-moderation-override", "show-anyway");
|
||||
await expect(hideCard.locator('[data-moderation-badge="true"]')).toContainText(
|
||||
@@ -190,7 +183,6 @@ test.describe("moderation fixtures", () => {
|
||||
await expect(hideCard).toHaveAttribute("data-moderation-hidden", "true");
|
||||
await expect(hideCard).not.toHaveAttribute("data-moderation-override", "show-anyway");
|
||||
await expect(hideCard.getByRole("button", { name: "Show anyway" })).toBeVisible();
|
||||
*/
|
||||
});
|
||||
|
||||
test("trusted mute hide fixture annotates mute reason and can be overridden", async ({
|
||||
@@ -219,14 +211,11 @@ test.describe("moderation fixtures", () => {
|
||||
await expect(muteCard).toHaveAttribute("data-moderation-trusted-mute-count", "1");
|
||||
await expect(badge).toContainText("Hidden · 1 trusted mute");
|
||||
await expect(thumbnail).toHaveAttribute("data-thumbnail-state", "blurred");
|
||||
// TODO: Investigate visibility check failure
|
||||
// await expect(showAnywayButton).toBeVisible();
|
||||
await expect(showAnywayButton).toBeVisible();
|
||||
await expect(restoreButtonQuery).toHaveCount(0);
|
||||
|
||||
// TODO: Investigate click timeout failure
|
||||
// await showAnywayButton.click({ force: true });
|
||||
await showAnywayButton.click();
|
||||
|
||||
/*
|
||||
await expect(muteCard).not.toHaveAttribute("data-moderation-hidden", "true");
|
||||
await expect(muteCard).toHaveAttribute("data-moderation-override", "show-anyway");
|
||||
await expect(muteCard.locator('[data-moderation-badge="true"]')).toContainText(
|
||||
@@ -245,6 +234,5 @@ test.describe("moderation fixtures", () => {
|
||||
await expect(muteCard).not.toHaveAttribute("data-moderation-override", "show-anyway");
|
||||
await expect(thumbnail).toHaveAttribute("data-thumbnail-state", "blurred");
|
||||
await expect(muteCard.getByRole("button", { name: "Show anyway" })).toBeVisible();
|
||||
*/
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user