feat(bot): add QR PNG renderer
This commit is contained in:
parent
20f24270d9
commit
dd1eb711df
15
apps/bot/src/whatsapp/qr-renderer.test.ts
Normal file
15
apps/bot/src/whatsapp/qr-renderer.test.ts
Normal file
@ -0,0 +1,15 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { renderQrPng } from "./qr-renderer.js";
|
||||
|
||||
describe("renderQrPng", () => {
|
||||
it("returns a PNG buffer for a non-empty string", async () => {
|
||||
const png = await renderQrPng("test-qr-payload");
|
||||
expect(png).toBeInstanceOf(Buffer);
|
||||
expect(png[0]).toBe(0x89);
|
||||
expect(png.subarray(1, 4).toString("ascii")).toBe("PNG");
|
||||
});
|
||||
|
||||
it("rejects empty input", async () => {
|
||||
await expect(renderQrPng("")).rejects.toThrow();
|
||||
});
|
||||
});
|
||||
6
apps/bot/src/whatsapp/qr-renderer.ts
Normal file
6
apps/bot/src/whatsapp/qr-renderer.ts
Normal file
@ -0,0 +1,6 @@
|
||||
import QRCode from "qrcode";
|
||||
|
||||
export async function renderQrPng(payload: string): Promise<Buffer> {
|
||||
if (!payload) throw new Error("renderQrPng: payload is empty");
|
||||
return await QRCode.toBuffer(payload, { type: "png", width: 512, margin: 2 });
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user