31 lines
1.1 KiB
JavaScript
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/);
|
|
});
|