From 53b717243b239eb8512f419f4e5c113d83cf49b7 Mon Sep 17 00:00:00 2001 From: SnapOtter Date: Fri, 8 May 2026 16:29:44 +0800 Subject: [PATCH] fix(meme-generator): add opentype.js types, fix no-dropzone registry test --- apps/api/package.json | 1 + pnpm-lock.yaml | 8 ++++++++ tests/unit/web/tool-registry.test.ts | 3 ++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/api/package.json b/apps/api/package.json index 1bee8dbf..96a1d3e5 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -48,6 +48,7 @@ "@types/better-sqlite3": "^7.6.0", "@types/js-yaml": "^4.0.9", "@types/node": "^22.0.0", + "@types/opentype.js": "^1.3.9", "@types/pdfkit": "^0.17.5", "@types/potrace": "^2.1.5", "@types/qrcode": "^1.5.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 10e25bbb..8b697e66 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -190,6 +190,9 @@ importers: '@types/node': specifier: ^22.0.0 version: 22.19.15 + '@types/opentype.js': + specifier: ^1.3.9 + version: 1.3.9 '@types/pdfkit': specifier: ^0.17.5 version: 0.17.5 @@ -3383,6 +3386,9 @@ packages: '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/opentype.js@1.3.9': + resolution: {integrity: sha512-KOGywvDPncA4/tTWV5xKNhjpsoSSAHIx3mHOhL5l3XX+c6Xu2dQnHvGs7mRNQsQRte1EqmQ0cPQQ8Z14lkv+yw==} + '@types/pdfkit@0.17.5': resolution: {integrity: sha512-T3ZHnvF91HsEco5ClhBCOuBwobZfPcI2jaiSHybkkKYq4KhVIIurod94JVKvDIG0JXT6o3KiERC0X0//m8dyrg==} @@ -9749,6 +9755,8 @@ snapshots: '@types/normalize-package-data@2.4.4': {} + '@types/opentype.js@1.3.9': {} + '@types/pdfkit@0.17.5': dependencies: '@types/node': 22.19.15 diff --git a/tests/unit/web/tool-registry.test.ts b/tests/unit/web/tool-registry.test.ts index f9c2060c..9f6091bc 100644 --- a/tests/unit/web/tool-registry.test.ts +++ b/tests/unit/web/tool-registry.test.ts @@ -296,8 +296,9 @@ describe("toolRegistry", () => { }); it("tools with no-dropzone display mode have a ResultsPanel", () => { + const selfContainedTools = new Set(["meme-generator"]); for (const [toolId, entry] of toolRegistry) { - if (entry.displayMode === "no-dropzone") { + if (entry.displayMode === "no-dropzone" && !selfContainedTools.has(toolId)) { expect(entry.ResultsPanel, `missing ResultsPanel for ${toolId}`).toBeDefined(); } }