30 lines
938 B
Swift
30 lines
938 B
Swift
import Foundation
|
|
import Testing
|
|
@testable import ClawdbotChatUI
|
|
|
|
#if os(macOS)
|
|
import AppKit
|
|
#endif
|
|
|
|
#if os(macOS)
|
|
private func luminance(_ color: NSColor) throws -> CGFloat {
|
|
let rgb = try #require(color.usingColorSpace(.deviceRGB))
|
|
return 0.2126 * rgb.redComponent + 0.7152 * rgb.greenComponent + 0.0722 * rgb.blueComponent
|
|
}
|
|
#endif
|
|
|
|
@Suite struct ChatThemeTests {
|
|
@Test func assistantBubbleResolvesForLightAndDark() throws {
|
|
#if os(macOS)
|
|
let lightAppearance = try #require(NSAppearance(named: .aqua))
|
|
let darkAppearance = try #require(NSAppearance(named: .darkAqua))
|
|
|
|
let lightResolved = ClawdbotChatTheme.resolvedAssistantBubbleColor(for: lightAppearance)
|
|
let darkResolved = ClawdbotChatTheme.resolvedAssistantBubbleColor(for: darkAppearance)
|
|
#expect(try luminance(lightResolved) > luminance(darkResolved))
|
|
#else
|
|
#expect(Bool(true))
|
|
#endif
|
|
}
|
|
}
|