kua-money-trace/test/mailArchive.test.js

31 lines
1.1 KiB
JavaScript

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/);
});