Files
scan-receipts/scripts/test_extractor_live.mjs
Timo 84b9987c49 Add full application: receipt scanning, auth, billing, and account deletion
Brings the working codebase (Next.js app, auth system, Stripe billing,
Docker/deploy config, tests, docs) into version control on top of the
placeholder initial commit, and adds account self-deletion (Danger Zone
in Settings, password + typed-email confirmation, cascading DB cleanup,
Stripe cancellation) per GDPR right-to-erasure.

Excludes local build caches, node_modules, and internal agent scratch
files; .gitignore hardened to keep those out going forward.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 20:59:04 +02:00

28 lines
1.1 KiB
JavaScript

import fs from "fs";
import { extractReceiptData } from "../src/lib/ai/extractor.ts";
const envContent = fs.readFileSync(".env.local", "utf-8");
const apiKeyMatch = envContent.match(/OPENROUTER_API_KEY=([^\r\n]+)/);
process.env.OPENROUTER_API_KEY = apiKeyMatch ? apiKeyMatch[1].trim() : "";
const demoImgPath = "public/demo/01_aral_tankbeleg_muenchen.jpg";
const imgBase64 = fs.readFileSync(demoImgPath).toString("base64");
const dataUrl = `data:image/jpeg;base64,${imgBase64}`;
async function testExtractorLive() {
console.log("=== TESTING LIVE EXTRACTOR WITH OPENROUTER ===");
const result = await extractReceiptData({
base64DataUrl: dataUrl,
fileName: "random_real_receipt_photo.jpg"
});
console.log("Extracted Merchant:", result.merchant.name);
console.log("Extracted Gross Total:", result.totalAmount.value, result.currency);
console.log("Extracted Date:", result.date.isoDate);
console.log("Extracted Tax Breakdown:", JSON.stringify(result.taxBreakdown));
console.log("Extracted Line Items:", JSON.stringify(result.lineItems));
console.log("Validation:", JSON.stringify(result.validation));
}
testExtractorLive().catch(console.error);