Files
hapi/ios/Packages/HapiKit/Tests/HapiUITests/TranscriptBottomProximityTests.swift
T

46 lines
1.8 KiB
Swift

import Testing
@testable import HapiUI
@Suite("Transcript latest-button proximity")
struct TranscriptBottomProximityTests {
@Test func smallDeparturesRemainHiddenUntilTheShowThreshold() {
var state = TranscriptBottomProximity()
#expect(!state.isAwayFromBottom)
for distance in [-30.0, 0, 1, 2, 24, 50, 79.9] {
state.update(bottomDistance: distance, followsTail: false)
#expect(!state.isAwayFromBottom)
}
state.update(bottomDistance: 80, followsTail: false)
#expect(state.isAwayFromBottom)
}
@Test func visibilityPersistsBetweenThresholdsAndHidesAtTheLowerBoundary() {
var state = TranscriptBottomProximity()
state.update(bottomDistance: 100, followsTail: false)
for distance in [80.0, 79, 81, 40, 24.1] {
state.update(bottomDistance: distance, followsTail: false)
#expect(state.isAwayFromBottom)
}
state.update(bottomDistance: 24, followsTail: false)
#expect(!state.isAwayFromBottom)
for distance in [25.0, 23, 25, 50, 79.9] {
state.update(bottomDistance: distance, followsTail: false)
#expect(!state.isAwayFromBottom)
}
state.update(bottomDistance: 80, followsTail: false)
#expect(state.isAwayFromBottom)
state.update(bottomDistance: -20, followsTail: false)
#expect(!state.isAwayFromBottom)
}
@Test func followingResetsVisibilityEvenBeforeBottomLayoutCatchesUp() {
var state = TranscriptBottomProximity()
state.update(bottomDistance: 200, followsTail: false)
#expect(state.isAwayFromBottom)
state.update(bottomDistance: 200, followsTail: true)
#expect(!state.isAwayFromBottom)
state.update(bottomDistance: 50, followsTail: false)
#expect(!state.isAwayFromBottom)
}
}