mirror of
https://github.com/AgentSeal/codeburn.git
synced 2026-10-21 14:12:34 +00:00
49 lines
1.5 KiB
Swift
49 lines
1.5 KiB
Swift
import Testing
|
|
@testable import CodeBurnMenubar
|
|
|
|
@Suite("Provider strip paging")
|
|
struct ProviderStripPagingStateTests {
|
|
@Test("paging changes the viewport without selecting a provider")
|
|
func pagingDoesNotSelect() {
|
|
var state = ProviderStripPagingState(
|
|
filters: [.all, .claude, .cursor],
|
|
selectedProvider: .all,
|
|
viewportAnchor: .all
|
|
)
|
|
|
|
#expect(state.move(direction: .forward) == .claude)
|
|
#expect(state.viewportAnchor == .claude)
|
|
#expect(state.selectedProvider == .all)
|
|
|
|
#expect(state.move(direction: .forward) == .cursor)
|
|
#expect(state.viewportAnchor == .cursor)
|
|
#expect(state.selectedProvider == .all)
|
|
#expect(!state.canMoveForward)
|
|
}
|
|
|
|
@Test("paging clamps a missing anchor to the selected provider")
|
|
func missingAnchorUsesSelection() {
|
|
var state = ProviderStripPagingState(
|
|
filters: [.all, .claude, .cursor],
|
|
selectedProvider: .claude,
|
|
viewportAnchor: .grok
|
|
)
|
|
|
|
#expect(state.viewportAnchor == .claude)
|
|
#expect(state.move(direction: .backward) == .all)
|
|
#expect(state.selectedProvider == .claude)
|
|
}
|
|
|
|
@Test("an empty strip cannot page")
|
|
func emptyStrip() {
|
|
var state = ProviderStripPagingState(
|
|
filters: [],
|
|
selectedProvider: .all,
|
|
viewportAnchor: nil
|
|
)
|
|
|
|
#expect(state.move(direction: .forward) == nil)
|
|
#expect(!state.canMoveBackward)
|
|
#expect(!state.canMoveForward)
|
|
}
|
|
}
|