test(web): align unit + e2e expectations with section routes

This commit is contained in:
SnapOtter
2026-06-20 23:35:37 +08:00
parent 0689ae554f
commit 5dbbac6c43
10 changed files with 42 additions and 42 deletions
+3 -3
View File
@@ -24,7 +24,7 @@ function _uploadMultipleFiles(page: import("@playwright/test").Page, filePaths:
test.describe("Batch processing preview and download", () => {
test("batch adjust-colors shows image preview, not UUID text", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
// Upload 2 images (PNG + JPG)
const files = [getFixturePath("test-200x150.png"), getFixturePath("test-100x100.jpg")];
@@ -66,7 +66,7 @@ test.describe("Batch processing preview and download", () => {
});
test("batch adjust-colors with HEIC shows preview", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
// Upload HEIC + PNG
const heicPath = getTestHeicPath();
@@ -101,7 +101,7 @@ test.describe("Batch processing preview and download", () => {
loggedInPage: page,
}) => {
await page.goto("/brightness-contrast");
await page.waitForURL("/adjust-colors");
await page.waitForURL("/image/adjust-colors");
await expect(page.getByText("Adjust Colors")).toBeVisible();
});
});
+6 -6
View File
@@ -899,19 +899,19 @@ test.describe("Routing Edge Cases", () => {
}) => {
await page.goto("/brightness-contrast");
await expect(page).toHaveURL("/adjust-colors");
await expect(page).toHaveURL("/image/adjust-colors");
});
test("legacy /saturation redirects to /adjust-colors", async ({ loggedInPage: page }) => {
await page.goto("/saturation");
await expect(page).toHaveURL("/adjust-colors");
await expect(page).toHaveURL("/image/adjust-colors");
});
test("legacy /color-channels redirects to /adjust-colors", async ({ loggedInPage: page }) => {
await page.goto("/color-channels");
await expect(page).toHaveURL("/adjust-colors");
await expect(page).toHaveURL("/image/adjust-colors");
});
test("/privacy renders the privacy policy page", async ({ loggedInPage: page }) => {
@@ -947,7 +947,7 @@ test.describe("Routing Edge Cases", () => {
test("legacy /color-effects redirects to /adjust-colors", async ({ loggedInPage: page }) => {
await page.goto("/color-effects");
await expect(page).toHaveURL("/adjust-colors");
await expect(page).toHaveURL("/image/adjust-colors");
});
test("/login when already logged in redirects to /", async ({ loggedInPage: page }) => {
@@ -1446,13 +1446,13 @@ test.describe("Routing - Additional Edge Cases", () => {
loggedInPage: page,
}) => {
await page.goto("/brightness-contrast");
await expect(page).toHaveURL("/adjust-colors");
await expect(page).toHaveURL("/image/adjust-colors");
await page.goto("/fullscreen");
await expect(page).toHaveURL("/fullscreen");
await page.goBack();
await expect(page).toHaveURL("/adjust-colors");
await expect(page).toHaveURL("/image/adjust-colors");
});
});
+5 -5
View File
@@ -312,7 +312,7 @@ test.describe("Repeated Operations Performance", () => {
"/convert",
"/compress",
"/sharpening",
"/adjust-colors",
"/image/adjust-colors",
"/strip-metadata",
"/bulk-rename",
"/favicon",
@@ -841,7 +841,7 @@ test.describe("Memory and Stability - Extended", () => {
"/watermark",
"/border",
"/sharpening",
"/adjust-colors",
"/image/adjust-colors",
];
const errors: string[] = [];
@@ -874,7 +874,7 @@ test.describe("Memory and Stability - Extended", () => {
"/convert",
"/compress",
"/sharpening",
"/adjust-colors",
"/image/adjust-colors",
"/strip-metadata",
"/bulk-rename",
"/favicon",
@@ -920,7 +920,7 @@ test.describe("Memory Stability - Heap Measurement", () => {
"/watermark",
"/border",
"/sharpening",
"/adjust-colors",
"/image/adjust-colors",
];
// Warm up and take baseline
@@ -1046,7 +1046,7 @@ test.describe("Memory Stability - Heap Measurement", () => {
"/convert",
"/compress",
"/sharpening",
"/adjust-colors",
"/image/adjust-colors",
"/strip-metadata",
"/bulk-rename",
"/favicon",
+2 -2
View File
@@ -646,7 +646,7 @@ test.describe("Memory and Stability", () => {
"/convert",
"/compress",
"/sharpening",
"/adjust-colors",
"/image/adjust-colors",
"/strip-metadata",
"/bulk-rename",
"/favicon",
@@ -732,7 +732,7 @@ test.describe("Memory and Stability", () => {
"/convert",
"/compress",
"/sharpening",
"/adjust-colors",
"/image/adjust-colors",
"/strip-metadata",
"/bulk-rename",
"/favicon",
+18 -18
View File
@@ -11,7 +11,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
// ========================================================================
test.describe("Adjust Colors", () => {
test("renders tool page with dropzone", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await expect(page.getByText("Adjust Colors").first()).toBeVisible();
await expect(page.getByText("Upload from computer")).toBeVisible();
});
@@ -19,7 +19,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
test("shows light/color/detail/effects sections after upload", async ({
loggedInPage: page,
}) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
await expect(page.getByText("Light").first()).toBeVisible();
@@ -31,7 +31,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
test("brightness/contrast/exposure sliders visible in Light section", async ({
loggedInPage: page,
}) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
await expect(page.locator("#color-slider-brightness")).toBeVisible();
@@ -42,7 +42,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
test("saturation/temperature/tint/hue sliders visible in Color section", async ({
loggedInPage: page,
}) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
await expect(page.locator("#color-slider-saturation")).toBeVisible();
@@ -52,7 +52,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
});
test("effect buttons (none, grayscale, sepia, invert)", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
await expect(page.getByRole("button", { name: "none" })).toBeVisible();
@@ -62,7 +62,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
});
test("color channels expandable section", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
// Click Color Channels to expand
@@ -75,7 +75,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
test("submit disabled without changes, enabled after slider change", async ({
loggedInPage: page,
}) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
const submitBtn = page.getByTestId("adjust-colors-submit");
@@ -87,7 +87,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
});
test("Reset All button appears after changes", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
await page.locator("#color-slider-brightness").fill("20");
@@ -95,7 +95,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
});
test("selecting grayscale effect enables submit", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
const submitBtn = page.getByTestId("adjust-colors-submit");
@@ -106,7 +106,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
});
test("detail section shows clarity and texture sliders", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
// Detail section should have sharpness/clarity controls
@@ -114,7 +114,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
});
test("Reset All reverts sliders to defaults", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
// Make a change first
@@ -130,7 +130,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
});
test("contrast slider is interactive", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
const slider = page.locator("#color-slider-contrast");
@@ -139,7 +139,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
});
test("selecting sepia effect enables submit", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
const submitBtn = page.getByTestId("adjust-colors-submit");
@@ -150,7 +150,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
});
test("processes color adjustment and shows download", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
await page.locator("#color-slider-brightness").fill("20");
@@ -525,7 +525,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
test("adjust-colors: undo after processing returns to sliders", async ({
loggedInPage: page,
}) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
await page.locator("#color-slider-brightness").fill("20");
@@ -596,7 +596,7 @@ test.describe("GUI Color & Adjustment Tools", () => {
});
test("adjust-colors: clear all returns to dropzone", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
await expect(page.locator("#color-slider-brightness")).toBeVisible();
@@ -607,13 +607,13 @@ test.describe("GUI Color & Adjustment Tools", () => {
});
test("adjust-colors: navigate away resets state", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
await page.locator("#color-slider-brightness").fill("30");
await page.goto("/sharpening");
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await expect(page.getByText("Upload from computer")).toBeVisible();
});
+1 -1
View File
@@ -107,7 +107,7 @@ test.describe("Tool processing (core tools)", () => {
});
test("adjust-colors processes image", async ({ loggedInPage: page }) => {
await page.goto("/adjust-colors");
await page.goto("/image/adjust-colors");
await uploadTestImage(page);
// Adjust brightness to non-zero so processing makes a change
const brightnessSlider = page.locator("input[type='range']").first();
+1 -1
View File
@@ -348,7 +348,7 @@ describe("isPublicRoute", () => {
});
it("treats tool endpoints as private", () => {
expect(isPublicRoute("/api/v1/tools/resize")).toBe(false);
expect(isPublicRoute("/api/v1/tools/image/resize")).toBe(false);
expect(isPublicRoute("/api/v1/features")).toBe(false);
expect(isPublicRoute("/api/v1/files")).toBe(false);
});
+3 -3
View File
@@ -179,7 +179,7 @@ describe("docs route logic", () => {
{ name: "Auth", description: "Authentication" },
],
paths: {
"/api/v1/tools/resize": {
"/api/v1/tools/image/resize": {
post: { tags: ["Tools"], summary: "Resize image" },
},
"/api/auth/login": {
@@ -241,7 +241,7 @@ describe("docs route logic", () => {
},
tags: [{ name: "Tools", description: "Processing tools" }],
paths: {
"/api/v1/tools/resize": {
"/api/v1/tools/image/resize": {
post: {
tags: ["Tools"],
summary: "Resize an image",
@@ -293,7 +293,7 @@ describe("docs route logic", () => {
it("marks auth-required endpoints", () => {
const result = generateLlmsFullTxt(fullSpec);
expect(result).toContain("POST /api/v1/tools/resize (auth required)");
expect(result).toContain("POST /api/v1/tools/image/resize (auth required)");
});
it("marks public endpoints", () => {
+1 -1
View File
@@ -166,7 +166,7 @@ describe("IP allowlist", () => {
});
it("does NOT exempt regular API paths", () => {
expect(isExemptPath("/api/v1/tools/crop")).toBe(false);
expect(isExemptPath("/api/v1/tools/image/crop")).toBe(false);
expect(isExemptPath("/api/v1/settings")).toBe(false);
expect(isExemptPath("/api/auth/login")).toBe(false);
});
+2 -2
View File
@@ -350,7 +350,7 @@ describe("useMemeStore", () => {
fetchMock.mockReturnValue(okJson(result));
await useMemeStore.getState().generateMeme();
expect(fetchMock).toHaveBeenCalledWith(
"/api/v1/tools/meme-generator",
"/api/v1/tools/image/meme-generator",
expect.objectContaining({
method: "POST",
body: expect.any(String),
@@ -371,7 +371,7 @@ describe("useMemeStore", () => {
fetchMock.mockReturnValue(okJson(result));
await useMemeStore.getState().generateMeme();
expect(fetchMock).toHaveBeenCalledWith(
"/api/v1/tools/meme-generator",
"/api/v1/tools/image/meme-generator",
expect.objectContaining({
method: "POST",
body: expect.any(FormData),