aboutsummaryrefslogtreecommitdiff
path: root/deno/mail-relay/mail.test.ts
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-06-17 19:04:16 +0800
committerYuqian Yang <crupest@crupest.life>2025-06-18 16:24:32 +0800
commitfd8ccbae956dd6cdba8d8a34692f65ad3663d7ac (patch)
treed4c032c965cb031fb98525cd0bfde76186902490 /deno/mail-relay/mail.test.ts
parentbf5d95731f38dd25aea8bca44beeb9335bbcd6b5 (diff)
downloadcrupest-fd8ccbae956dd6cdba8d8a34692f65ad3663d7ac.tar.gz
crupest-fd8ccbae956dd6cdba8d8a34692f65ad3663d7ac.tar.bz2
crupest-fd8ccbae956dd6cdba8d8a34692f65ad3663d7ac.zip
mail: simplify mail parsing, improve logging.
Diffstat (limited to 'deno/mail-relay/mail.test.ts')
-rw-r--r--deno/mail-relay/mail.test.ts31
1 files changed, 13 insertions, 18 deletions
diff --git a/deno/mail-relay/mail.test.ts b/deno/mail-relay/mail.test.ts
index cd0c38d..a8204be 100644
--- a/deno/mail-relay/mail.test.ts
+++ b/deno/mail-relay/mail.test.ts
@@ -51,7 +51,7 @@ const mockToAddresses = [
describe("Mail", () => {
it("simple parse", () => {
- const parsed = new Mail(mockMailStr).startSimpleParse().sections();
+ const { parsed } = new Mail(mockMailStr);
expect(parsed.header).toEqual(mockHeaderStr);
expect(parsed.body).toEqual(mockBodyStr);
expect(parsed.sep).toBe("\n");
@@ -59,37 +59,29 @@ describe("Mail", () => {
});
it("simple parse crlf", () => {
- const parsed = new Mail(mockCrlfMailStr).startSimpleParse().sections();
+ const { parsed } = new Mail(mockCrlfMailStr);
expect(parsed.sep).toBe("\r\n");
expect(parsed.eol).toBe("\r\n");
});
it("simple parse date", () => {
expect(
- new Mail(mockMailStr).startSimpleParse().sections().headers().date(),
+ new Mail(mockMailStr).parsed.date,
).toEqual(new Date(mockDate));
});
it("simple parse headers", () => {
expect(
- new Mail(mockMailStr).startSimpleParse().sections().headers().fields,
+ new Mail(mockMailStr).parsed.headers,
).toEqual(mockHeaders.map((h) => [h[0], " " + h[1].replaceAll("\n", "")]));
});
it("parse recipients", () => {
const mail = new Mail(mockMailStr);
- expect([
- ...mail.startSimpleParse().sections().headers().recipients(),
- ]).toEqual([...mockToAddresses, mockCcAddress]);
- expect([
- ...mail.startSimpleParse().sections().headers().recipients({
- domain: "example.com",
- }),
- ]).toEqual(
- [...mockToAddresses, mockCcAddress].filter((a) =>
- a.endsWith("example.com")
- ),
- );
+ expect([...mail.parsed.recipients]).toEqual([
+ ...mockToAddresses,
+ mockCcAddress,
+ ]);
});
it("find all addresses", () => {
@@ -113,11 +105,14 @@ describe("MailDeliverer", () => {
class MockMailDeliverer extends MailDeliverer {
name = "mock";
override doDeliver = fn((_: Mail, ctx: MailDeliverContext) => {
- ctx.result.recipients.set("*", { kind: "done", message: "success" });
+ ctx.result.recipients.set("*", {
+ kind: "success",
+ message: "success message",
+ });
return Promise.resolve();
}) as MailDeliverer["doDeliver"];
}
- const mockDeliverer = new MockMailDeliverer();
+ const mockDeliverer = new MockMailDeliverer(false);
it("deliver success", async () => {
await mockDeliverer.deliverRaw(mockMailStr);