mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
fix: update tool count to 51, refresh hero copy and login page
- Update stale tool counts (48/49/50) to 51 across all apps, docs, and tests - Add Meme Generator to landing page bento grid (was missing) - Add 12 SEO-friendly rotating phrases to hero typing cursor - Change landing hero subtitle to "Every image tool you need." - Replace outdated login page copy with branded hero + rotating phrases
This commit is contained in:
@@ -23,9 +23,7 @@ test.describe("Landing Homepage", () => {
|
||||
|
||||
test("hero section renders headline and subheadline", async ({ page }) => {
|
||||
await expect(page.getByText("Your images. Stay yours.")).toBeVisible();
|
||||
await expect(
|
||||
page.getByText("The open-source, self-hosted image processing platform."),
|
||||
).toBeVisible();
|
||||
await expect(page.getByText("Every image tool you need.")).toBeVisible();
|
||||
});
|
||||
|
||||
test("hero CTA links to GitHub", async ({ page }) => {
|
||||
@@ -59,9 +57,9 @@ test.describe("Landing Homepage", () => {
|
||||
});
|
||||
|
||||
test("bento grid renders with search and tool count", async ({ page }) => {
|
||||
await expect(page.getByText("50 tools. Zero cloud dependency.")).toBeVisible();
|
||||
await expect(page.getByText("51 tools. Zero cloud dependency.")).toBeVisible();
|
||||
await expect(page.getByPlaceholder("Search tools...")).toBeVisible();
|
||||
await expect(page.getByText(/Showing 50 of 50 tools/)).toBeVisible();
|
||||
await expect(page.getByText(/Showing 51 of 51 tools/)).toBeVisible();
|
||||
});
|
||||
|
||||
test("enterprise section renders feature cards", async ({ page }) => {
|
||||
|
||||
@@ -9,28 +9,28 @@ test.describe("BentoGrid Interactions", () => {
|
||||
const input = page.getByPlaceholder("Search tools...");
|
||||
await input.fill("resize");
|
||||
await expect(page.getByText("Resize", { exact: true }).first()).toBeVisible();
|
||||
await expect(page.getByText(/Showing \d+ of 50 tools/)).toBeVisible();
|
||||
await expect(page.getByText(/Showing \d+ of 51 tools/)).toBeVisible();
|
||||
});
|
||||
|
||||
test("category pill filters tools", async ({ page }) => {
|
||||
await page.getByText(/AI Tools/).click();
|
||||
await expect(page.getByText(/Showing 15 of 50 tools/)).toBeVisible();
|
||||
await expect(page.getByText(/Showing 15 of 51 tools/)).toBeVisible();
|
||||
await expect(page.getByText("Remove Background")).toBeVisible();
|
||||
});
|
||||
|
||||
test("clicking All resets category filter", async ({ page }) => {
|
||||
await page.getByText(/AI Tools/).click();
|
||||
await expect(page.getByText(/Showing 15 of 50 tools/)).toBeVisible();
|
||||
await expect(page.getByText(/Showing 15 of 51 tools/)).toBeVisible();
|
||||
|
||||
await page.getByText(/All \(50\)/).click();
|
||||
await expect(page.getByText(/Showing 50 of 50 tools/)).toBeVisible();
|
||||
await page.getByText(/All \(51\)/).click();
|
||||
await expect(page.getByText(/Showing 51 of 51 tools/)).toBeVisible();
|
||||
});
|
||||
|
||||
test("search with no results shows empty state", async ({ page }) => {
|
||||
const input = page.getByPlaceholder("Search tools...");
|
||||
await input.fill("xyznonexistent");
|
||||
await expect(page.getByText("No tools found. Try a different search.")).toBeVisible();
|
||||
await expect(page.getByText(/Showing 0 of 50 tools/)).toBeVisible();
|
||||
await expect(page.getByText(/Showing 0 of 51 tools/)).toBeVisible();
|
||||
});
|
||||
|
||||
test("combined search and category filter works", async ({ page }) => {
|
||||
|
||||
Reference in New Issue
Block a user