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