From 47029c6b2bfaead3cb3df798a810faa6a3856d27 Mon Sep 17 00:00:00 2001 From: "lcj.licunjie" <1067532060@qq.com> Date: Wed, 9 Sep 2026 23:57:58 +0800 Subject: [PATCH] feat(pwa): add web app manifest and icons --- public/apple-touch-icon.png | Bin 0 -> 18314 bytes public/site.webmanifest | 20 ++++++++++ public/web-app-icon-192x192.png | Bin 0 -> 20143 bytes public/web-app-icon-512x512.png | Bin 0 -> 52613 bytes src/app/layout.tsx | 3 +- tests/components/RootLayout.test.tsx | 7 ++++ tests/unit/web-app-manifest.test.ts | 57 +++++++++++++++++++++++++++ 7 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 public/apple-touch-icon.png create mode 100644 public/site.webmanifest create mode 100644 public/web-app-icon-192x192.png create mode 100644 public/web-app-icon-512x512.png create mode 100644 tests/unit/web-app-manifest.test.ts diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..dddb1f0ba35a8bfb222fd17ab3d16b6992a7a47c GIT binary patch literal 18314 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℞qdi<*yHk2AN} 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 literal 0 HcmV?d00001 diff --git a/public/web-app-icon-512x512.png b/public/web-app-icon-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..7ec684b37a2b1a00cf0205d5f1372f00adefb6c0 GIT binary patch literal 52613 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 E0F4GUEC2ui literal 0 HcmV?d00001 diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 675642f2a..9d953c9e6 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -14,13 +14,14 @@ import { Toaster } from "@/components/ui/sonner"; export const metadata: Metadata = { title: "LibreDB Studio | Universal Database Editor", description: "Manage PostgreSQL, MySQL, MongoDB, and Redis in one web-based interface.", + manifest: "/site.webmanifest", icons: { icon: [ { url: "/favicon.ico?v=2", sizes: "any" }, { url: "/logo.svg?v=2", type: "image/svg+xml" }, ], shortcut: "/favicon.ico?v=2", - apple: "/favicon-32x32.png?v=2", + apple: [{ url: "/apple-touch-icon.png", sizes: "180x180", type: "image/png" }], }, }; diff --git a/tests/components/RootLayout.test.tsx b/tests/components/RootLayout.test.tsx index 85f5b4fa7..fcbdef756 100644 --- a/tests/components/RootLayout.test.tsx +++ b/tests/components/RootLayout.test.tsx @@ -42,6 +42,13 @@ describe("RootLayout", () => { expect(metadata.description).toBe("Manage PostgreSQL, MySQL, MongoDB, and Redis in one web-based interface."); }); + test("links the web app manifest and iOS home-screen icon", () => { + expect(metadata.manifest).toBe("/site.webmanifest"); + expect(metadata.icons).toMatchObject({ + apple: [{ url: "/apple-touch-icon.png", sizes: "180x180", type: "image/png" }], + }); + }); + test("renders children", () => { const { getByText } = render( diff --git a/tests/unit/web-app-manifest.test.ts b/tests/unit/web-app-manifest.test.ts new file mode 100644 index 000000000..c5284f6f6 --- /dev/null +++ b/tests/unit/web-app-manifest.test.ts @@ -0,0 +1,57 @@ +import { describe, expect, test } from "bun:test"; +import { readFileSync } from "node:fs"; +import { join } from "node:path"; + +const PUBLIC_DIR = join(import.meta.dir, "../../public"); + +interface ManifestIcon { + src: string; + sizes: string; + type: string; +} + +interface WebManifest { + name: string; + short_name: string; + start_url: string; + display: string; + theme_color: string; + background_color: string; + icons: ManifestIcon[]; +} + +function pngDimensions(file: string): { width: number; height: number } { + const image = readFileSync(join(PUBLIC_DIR, file)); + expect(image.subarray(0, 8)).toEqual(Buffer.from([137, 80, 78, 71, 13, 10, 26, 10])); + return { width: image.readUInt32BE(16), height: image.readUInt32BE(20) }; +} + +describe("web app manifest", () => { + const manifest = JSON.parse(readFileSync(join(PUBLIC_DIR, "site.webmanifest"), "utf8")) as WebManifest; + + test("describes LibreDB Studio as an installable standalone app", () => { + expect(manifest).toMatchObject({ + name: "LibreDB Studio", + short_name: "LibreDB", + start_url: "/", + display: "standalone", + theme_color: "#09090b", + background_color: "#09090b", + }); + }); + + test("declares the two standard PNG app icon sizes", () => { + expect(manifest.icons).toEqual([ + { src: "/web-app-icon-192x192.png", sizes: "192x192", type: "image/png" }, + { src: "/web-app-icon-512x512.png", sizes: "512x512", type: "image/png" }, + ]); + }); + + test.each([ + ["web-app-icon-192x192.png", 192], + ["web-app-icon-512x512.png", 512], + ["apple-touch-icon.png", 180], + ])("%s is a valid square PNG with the advertised dimensions", (file, size) => { + expect(pngDimensions(file)).toEqual({ width: size, height: size }); + }); +});