Add end-to-end tests for TLS RPT report ingestion and WebSocket event handling

- Implemented tests for ingesting TLS RPT reports from emails and ensuring they are stored correctly in the database.
- Added tests to verify that the same report can be ingested multiple times without duplication.
- Created tests for backfilling reports that were previously delivered to the inbox.
- Developed WebSocket event handling tests to ensure events are correctly routed to subscribers based on mailbox ownership.
- Included tests for the mail API to validate session handling, mailbox isolation, and error mapping.
- Ensured that the API rejects unauthorized requests and handles malformed JSON gracefully.
This commit is contained in:
Lucas Rayan committed 2026-08-21 09:55:37 -03:00
1 parent 880dced9e4
commit f330c4324e
28 files changed
+2438 -6

No files matched your search

@@ -80,3 +80,23 @@ describe("deleting a message", () => {
expect(del.slice(0, 1200)).toMatch(/setMessages\(/);
});
});
describe("the Reports folder", () => {
// DMARC and TLS-RPT reports are parsed on arrival and filed here instead of
// the inbox. The sidebar is a fixed list, so without an entry the folder
// exists and receives mail that no screen can reach.
it("is reachable from the sidebar", () => {
const layout = code("src/app/(user)/user/layout.tsx");
expect(layout).toContain("/user/mail/reports");
});
it("is named through the translator, not hardcoded", () => {
const layout = code("src/app/(user)/user/layout.tsx");
expect(layout).toMatch(/t\("mail\.reports"\)/);
});
it("has a title on the message list too", () => {
const page = code(MAIL_PAGE);
expect(page).toMatch(/reports:\s*t\("mail\.reports"\)/);
});
});