import assert from 'node:assert/strict'; import fs from 'node:fs/promises'; import os from 'node:os'; import path from 'node:path'; import test from 'node:test'; import { archiveRawEmail } from '../src/mailArchive.js'; test('archives raw email and attachments with manifest records', async () => { const tmp = await fs.mkdtemp(path.join(os.tmpdir(), 'kua-money-trace-mail-')); const source = await fs.readFile('test/fixtures/sample-bank-email.eml'); const record = await archiveRawEmail({ account: { id: 'vjoati-gmail' }, mailbox: 'fixture', uid: 1, source, archiveRoot: tmp, }); assert.equal(record.accountId, 'vjoati-gmail'); assert.equal(record.mailbox, 'fixture'); assert.equal(record.subject, 'Estado de cuenta tarjeta credito terminado 5018'); assert.equal(record.attachments.length, 1); assert.equal(record.attachments[0].filename, 'estado-cuenta-5018.pdf'); await fs.access(record.raw.path); await fs.access(record.attachments[0].path); const manifest = await fs.readFile(path.join(tmp, 'manifests', 'emails.ndjson'), 'utf8'); assert.match(manifest, /sample-bank-email-5018/); });