Files
Luma/Tests/OlderHistoryScrollPolicyTests.swift
wt e28a4043ee
iOS CI / Build and Test SwiftUI App (push) Canceled after 0s
Build Unsigned iOS and macOS Apps / Build Unsigned iOS IPA (push) Canceled after 0s
Build Unsigned iOS and macOS Apps / Build macOS ZIP (push) Canceled after 0s
some fixes
2026-09-07 19:40:47 +07:00

48 lines
1.4 KiB
Swift

import XCTest
@testable import Luma
final class OlderHistoryScrollPolicyTests: XCTestCase {
func testIncompletePageWithFirstCursorContinues() {
let page = OlderHistoryScrollPolicy.page(
complete: false,
pageFirstID: " mam-17 "
)
XCTAssertTrue(page.hasMore)
XCTAssertEqual(page.nextBefore, "mam-17")
}
func testCompletePageStopsEvenWithCursor() {
let page = OlderHistoryScrollPolicy.page(
complete: true,
pageFirstID: "mam-17"
)
XCTAssertFalse(page.hasMore)
XCTAssertEqual(page.nextBefore, "mam-17")
}
func testEmptyPageNeverReportsMore() {
// A server that keeps answering without RSM <first> must not leave
// the UI re-requesting the same page in a spinner loop.
let page = OlderHistoryScrollPolicy.page(complete: false, pageFirstID: nil)
XCTAssertFalse(page.hasMore)
XCTAssertNil(page.nextBefore)
}
func testWhitespaceOnlyCursorIsDiscarded() {
let page = OlderHistoryScrollPolicy.page(complete: false, pageFirstID: " ")
XCTAssertFalse(page.hasMore)
XCTAssertNil(page.nextBefore)
}
func testPageFirstIDMustNotBecomeAnEmptyCursor() {
let page = OlderHistoryScrollPolicy.page(complete: false, pageFirstID: "")
XCTAssertFalse(page.hasMore)
XCTAssertNil(page.nextBefore)
}
}