63 lines
2.1 KiB
Swift
63 lines
2.1 KiB
Swift
|
|
import Testing
|
||
|
|
@testable import IMessageSync
|
||
|
|
|
||
|
|
@Suite("Send Validation")
|
||
|
|
struct SendValidationTests {
|
||
|
|
|
||
|
|
@Test func invalidPhoneTooFewDigitsReturnsError() {
|
||
|
|
let result = SendService.validate(recipient: "12345")
|
||
|
|
#expect(result.error == "Invalid phone number format")
|
||
|
|
}
|
||
|
|
|
||
|
|
@Test func validTenDigitPhoneAccepted() {
|
||
|
|
let result = SendService.validate(recipient: "5551234567")
|
||
|
|
#expect(result.error == nil)
|
||
|
|
#expect(result.buddyId == "5551234567")
|
||
|
|
#expect(result.isEmail == false)
|
||
|
|
}
|
||
|
|
|
||
|
|
@Test func phoneWithFormattingCleanedToDigits() {
|
||
|
|
let result = SendService.validate(recipient: "(555) 123-4567")
|
||
|
|
#expect(result.error == nil)
|
||
|
|
#expect(result.buddyId == "5551234567")
|
||
|
|
}
|
||
|
|
|
||
|
|
@Test func validEmailAccepted() {
|
||
|
|
let result = SendService.validate(recipient: "test@example.com")
|
||
|
|
#expect(result.error == nil)
|
||
|
|
#expect(result.buddyId == "test@example.com")
|
||
|
|
#expect(result.isEmail == true)
|
||
|
|
}
|
||
|
|
|
||
|
|
@Test func invalidEmailNoDotAfterAtReturnsError() {
|
||
|
|
let result = SendService.validate(recipient: "test@localhost")
|
||
|
|
#expect(result.error == "Invalid email address format")
|
||
|
|
}
|
||
|
|
|
||
|
|
@Test func messageIdFormatContainsSendPrefix() {
|
||
|
|
let messageId = SendService.generateMessageId(buddyId: "+15551234567", isEmail: false)
|
||
|
|
#expect(messageId.hasPrefix("send_"))
|
||
|
|
}
|
||
|
|
|
||
|
|
@Test func emailMessageIdUsesLastFourOfLocalPart() {
|
||
|
|
let messageId = SendService.generateMessageId(buddyId: "alice@example.com", isEmail: true)
|
||
|
|
#expect(messageId.hasPrefix("send_lice_"))
|
||
|
|
}
|
||
|
|
|
||
|
|
@Test func phoneMessageIdUsesLastFourDigits() {
|
||
|
|
let messageId = SendService.generateMessageId(buddyId: "+15551234567", isEmail: false)
|
||
|
|
#expect(messageId.hasPrefix("send_4567_"))
|
||
|
|
}
|
||
|
|
|
||
|
|
@Test func phoneWithPlusPrefixAccepted() {
|
||
|
|
let result = SendService.validate(recipient: "+15551234567")
|
||
|
|
#expect(result.error == nil)
|
||
|
|
#expect(result.buddyId == "+15551234567")
|
||
|
|
}
|
||
|
|
|
||
|
|
@Test func emptyRecipientPhoneReturnsError() {
|
||
|
|
let result = SendService.validate(recipient: "")
|
||
|
|
#expect(result.error != nil)
|
||
|
|
}
|
||
|
|
}
|