Files
Luma/Tests/MessageReplySwipeTests.swift
2026-07-30 20:07:51 +07:00

56 lines
1.8 KiB
Swift

import CoreGraphics
import XCTest
@testable import Luma
final class MessageReplySwipeTests: XCTestCase {
func testHorizontalSwipeInEitherDirectionReplies() {
XCTAssertTrue(MessageReplySwipePolicy.shouldReply(
translation: CGSize(width: 70, height: 8),
predictedEndTranslation: CGSize(width: 72, height: 9)
))
XCTAssertTrue(MessageReplySwipePolicy.shouldReply(
translation: CGSize(width: -70, height: 8),
predictedEndTranslation: CGSize(width: -72, height: 9)
))
}
func testVerticalTimelineScrollDoesNotReply() {
XCTAssertFalse(MessageReplySwipePolicy.shouldReply(
translation: CGSize(width: 42, height: 80),
predictedEndTranslation: CGSize(width: 50, height: 105)
))
}
func testDiagonalTimelineScrollDoesNotReply() {
XCTAssertFalse(MessageReplySwipePolicy.shouldReply(
translation: CGSize(width: 54, height: 44),
predictedEndTranslation: CGSize(width: 76, height: 58)
))
XCTAssertEqual(
MessageReplySwipePolicy.offset(for: CGSize(width: 54, height: 44)),
0
)
}
func testShortSwipeDoesNotReply() {
XCTAssertFalse(MessageReplySwipePolicy.shouldReply(
translation: CGSize(width: 36, height: 4),
predictedEndTranslation: CGSize(width: 48, height: 5)
))
}
func testFastHorizontalFlickUsesPredictedEnd() {
XCTAssertTrue(MessageReplySwipePolicy.shouldReply(
translation: CGSize(width: -35, height: 3),
predictedEndTranslation: CGSize(width: -90, height: 7)
))
}
func testVisualOffsetIsCapped() {
XCTAssertEqual(
MessageReplySwipePolicy.offset(for: CGSize(width: 500, height: 0)),
MessageReplySwipePolicy.maximumOffset
)
}
}