mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
fix: QA sweep -- SSE crash, memory leaks, HEIC Docker decode, TGA detection, lint cleanup
- Fix SSE write-after-end crash in progress.ts (remove callback before ending stream) - Fix blob URL memory leaks: revoke processedPreviewUrl and old HEIC preview URLs - Add AbortController to batch fetch in use-tool-processor and use-pipeline-processor - Fix TGA format misidentified as CUR (extension overrides magic bytes) - Add libheif-plugin-libde265 to Docker for HEIC/HEIF decode support - Remove unused imports and state (AppLayout, setSampledColor, useEffect) - Fix non-null assertions in meme-text-renderer and meme-generator - Fix confusing void type in meme-templates - Remove unnecessary useEffect deps in adjustments-panel - Fix Playwright strict mode violations in 5 E2E tests
This commit is contained in:
@@ -554,8 +554,8 @@ test.describe("File Upload Preview Timing", () => {
|
||||
await expect(
|
||||
page
|
||||
.getByText(/test-image/i)
|
||||
.first()
|
||||
.or(page.locator("img[src^='blob:']").first()),
|
||||
.or(page.locator("img[src^='blob:']"))
|
||||
.first(),
|
||||
).toBeVisible({ timeout: 5_000 });
|
||||
const previewTime = Date.now() - start;
|
||||
|
||||
|
||||
@@ -1078,8 +1078,8 @@ test.describe("GUI AI Tools", () => {
|
||||
await expect(
|
||||
page
|
||||
.getByText(/upload/i)
|
||||
.first()
|
||||
.or(page.locator("img").first()),
|
||||
.or(page.locator("img"))
|
||||
.first(),
|
||||
).toBeVisible({ timeout: 10_000 });
|
||||
});
|
||||
});
|
||||
|
||||
@@ -209,7 +209,7 @@ test.describe("GUI Layout Tools", () => {
|
||||
test("shows Background section with tabs", async ({ loggedInPage: page }) => {
|
||||
await page.goto("/beautify");
|
||||
|
||||
await expect(page.getByText("Background")).toBeVisible();
|
||||
await expect(page.getByText("Background").first()).toBeVisible();
|
||||
await expect(page.getByRole("button", { name: "Gradient" })).toBeVisible();
|
||||
await expect(page.getByRole("button", { name: "Solid" })).toBeVisible();
|
||||
await expect(page.getByRole("button", { name: "Image" })).toBeVisible();
|
||||
|
||||
@@ -256,7 +256,7 @@ test.describe("GUI Watermark & Overlay Tools", () => {
|
||||
test("shows overlay image upload button", async ({ loggedInPage: page }) => {
|
||||
await page.goto("/compose");
|
||||
|
||||
await expect(page.getByText("Overlay Image")).toBeVisible();
|
||||
await expect(page.getByText("Overlay Image").first()).toBeVisible();
|
||||
await expect(page.getByText("Choose overlay image")).toBeVisible();
|
||||
});
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ test.describe("GUI Utility Tools", () => {
|
||||
test("shows second image upload button with correct label", async ({ loggedInPage: page }) => {
|
||||
await page.goto("/compare");
|
||||
|
||||
await expect(page.getByText("Second Image")).toBeVisible();
|
||||
await expect(page.getByText("Second Image").first()).toBeVisible();
|
||||
await expect(page.getByText("Choose second image")).toBeVisible();
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user