50 lines
1.9 KiB
Swift
50 lines
1.9 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import CodexBarCLI
|
|
|
|
struct CLITerminalCapabilitiesTests {
|
|
@Test
|
|
func `detects kitty graphics backend`() {
|
|
let env = ["KITTY_WINDOW_ID": "1", "TERM": "xterm-kitty"]
|
|
#expect(CLITerminalCapabilities.detect(environment: env) == .kittyGraphics)
|
|
#expect(CLITerminalCapabilities.supportsEnhancedCards(useColor: true, environment: env))
|
|
}
|
|
|
|
@Test
|
|
func `detects ghostty backend`() {
|
|
let env = ["GHOSTTY_RESOURCES_DIR": "/usr/share/ghostty", "TERM": "xterm-ghostty"]
|
|
#expect(CLITerminalCapabilities.detect(environment: env) == .kittyGraphics)
|
|
}
|
|
|
|
@Test
|
|
func `detects truecolor without graphics env`() {
|
|
let env = ["COLORTERM": "truecolor", "TERM": "alacritty"]
|
|
#expect(CLITerminalCapabilities.detect(environment: env) == .truecolor)
|
|
}
|
|
|
|
@Test
|
|
func `respects forced enhanced env override`() {
|
|
let env = ["TERM": "dumb", "CODEXBAR_CARDS_ENHANCED": "1"]
|
|
#expect(CLITerminalCapabilities.supportsEnhancedCards(useColor: true, environment: env))
|
|
}
|
|
|
|
@Test
|
|
func `defaults cards to standard on plain ansi terminals`() {
|
|
let env = ["TERM": "xterm-256color"]
|
|
#expect(!CLITerminalCapabilities.supportsEnhancedCards(useColor: true, environment: env))
|
|
#expect(!CLITerminalCapabilities.supportsEnhancedCards(useColor: false, environment: env))
|
|
}
|
|
|
|
@Test
|
|
func `defaults cards to enhanced on truecolor terminals`() {
|
|
let env = ["TERM": "xterm-256color", "COLORTERM": "truecolor"]
|
|
#expect(CLITerminalCapabilities.supportsEnhancedCards(useColor: true, environment: env))
|
|
}
|
|
|
|
@Test
|
|
func `respects forced enhanced opt out`() {
|
|
let env = ["TERM": "xterm-256color", "CODEXBAR_CARDS_ENHANCED": "0"]
|
|
#expect(!CLITerminalCapabilities.supportsEnhancedCards(useColor: true, environment: env))
|
|
}
|
|
}
|