Spaces:
Running
Running
| import { describe, expect, it } from "vitest"; | |
| import type { MsgContext } from "../auto-reply/templating.js"; | |
| import { validateSenderIdentity } from "./sender-identity.js"; | |
| describe("validateSenderIdentity", () => { | |
| it("allows direct messages without sender fields", () => { | |
| const ctx: MsgContext = { ChatType: "direct" }; | |
| expect(validateSenderIdentity(ctx)).toEqual([]); | |
| }); | |
| it("requires some sender identity for non-direct chats", () => { | |
| const ctx: MsgContext = { ChatType: "group" }; | |
| expect(validateSenderIdentity(ctx)).toContain( | |
| "missing sender identity (SenderId/SenderName/SenderUsername/SenderE164)", | |
| ); | |
| }); | |
| it("validates SenderE164 and SenderUsername shape", () => { | |
| const ctx: MsgContext = { | |
| ChatType: "group", | |
| SenderE164: "123", | |
| SenderUsername: "@ada lovelace", | |
| }; | |
| expect(validateSenderIdentity(ctx)).toEqual([ | |
| "invalid SenderE164: 123", | |
| 'SenderUsername should not include "@": @ada lovelace', | |
| "SenderUsername should not include whitespace: @ada lovelace", | |
| ]); | |
| }); | |
| }); | |