Feat: match incoming messages to conversations using reference number in the subject.

refactor: update GetConversation method to include reference number parameter
This commit is contained in:
Abhinav Raut
2025-12-17 01:26:04 +05:30
parent e4f260e3f4
commit 22af66c44d
12 changed files with 148 additions and 38 deletions
+58
View File
@@ -101,3 +101,61 @@ func TestFormatDuration(t *testing.T) {
})
}
}
func TestExtractReferenceNumber(t *testing.T) {
tests := []struct {
name string
subject string
expected string
}{
{
name: "simple reference number",
subject: "Test - #392",
expected: "392",
},
{
name: "with RE prefix",
subject: "RE: Test - #392",
expected: "392",
},
{
name: "multiple hashes picks last",
subject: "Order #123 - #392",
expected: "392",
},
{
name: "no reference number",
subject: "Just a regular subject",
expected: "",
},
{
name: "hash without number",
subject: "Test #abc",
expected: "",
},
{
name: "empty string",
subject: "",
expected: "",
},
{
name: "number without hash",
subject: "Test 392",
expected: "",
},
{
name: "multiple RE prefixes",
subject: "RE: RE: Test - #100",
expected: "100",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := ExtractReferenceNumber(tt.subject)
if result != tt.expected {
t.Errorf("ExtractReferenceNumber(%q) = %q, want %q", tt.subject, result, tt.expected)
}
})
}
}