mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-02 10:31:35 +00:00
102 lines
3.0 KiB
Swift
102 lines
3.0 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import OpenClaw
|
|
|
|
struct DeviceInfoHelperTests {
|
|
@Test func `iOS version display omits platform prefix`() {
|
|
let version = OperatingSystemVersion(majorVersion: 26, minorVersion: 5, patchVersion: 0)
|
|
|
|
#expect(DeviceInfoHelper.iOSVersionStringForDisplay(version) == "26.5.0")
|
|
}
|
|
|
|
@Test func `build metadata prefers canonical iOS version`() {
|
|
let metadata = DeviceInfoHelper.buildMetadata(infoDictionary: [
|
|
"OpenClawCanonicalVersion": "2026.7.10",
|
|
"CFBundleShortVersionString": "2026.7.9",
|
|
"CFBundleVersion": "42",
|
|
])
|
|
|
|
#expect(metadata.versionDisplay == "2026.7.10 (42)")
|
|
}
|
|
|
|
@Test func `iOS app on Mac replaces generic iPad node name`() {
|
|
let name = NodeDisplayName.resolve(
|
|
existing: "iPad Node",
|
|
deviceName: "Studio Mac",
|
|
interfaceIdiom: .pad,
|
|
isIOSAppOnMac: true)
|
|
|
|
#expect(name == "OpenClaw Mac App")
|
|
}
|
|
|
|
@Test func `iOS app on Mac replaces persisted generic iPad device name`() {
|
|
let name = NodeDisplayName.resolve(
|
|
existing: "iPad",
|
|
deviceName: "iPad",
|
|
interfaceIdiom: .pad,
|
|
isIOSAppOnMac: true)
|
|
|
|
#expect(name == "OpenClaw Mac App")
|
|
}
|
|
|
|
@Test func `iOS app on Mac replaces persisted generic iPhone device name`() {
|
|
let name = NodeDisplayName.resolve(
|
|
existing: "iPhone",
|
|
deviceName: "iPhone",
|
|
interfaceIdiom: .phone,
|
|
isIOSAppOnMac: true)
|
|
|
|
#expect(name == "OpenClaw Mac App")
|
|
}
|
|
|
|
@Test func `iOS app on Mac preserves a custom node name`() {
|
|
let name = NodeDisplayName.resolve(
|
|
existing: "Studio controller",
|
|
deviceName: "Studio Mac",
|
|
interfaceIdiom: .pad,
|
|
isIOSAppOnMac: true)
|
|
|
|
#expect(name == "Studio controller")
|
|
}
|
|
|
|
@Test func `physical iPad keeps its device name`() {
|
|
let name = NodeDisplayName.resolve(
|
|
existing: "iPad Node",
|
|
deviceName: "Office iPad",
|
|
interfaceIdiom: .pad,
|
|
isIOSAppOnMac: false)
|
|
|
|
#expect(name == "Office iPad")
|
|
}
|
|
|
|
@Test func `physical iPad keeps its generic device name`() {
|
|
let name = NodeDisplayName.resolve(
|
|
existing: "iPad",
|
|
deviceName: "iPad",
|
|
interfaceIdiom: .pad,
|
|
isIOSAppOnMac: false)
|
|
|
|
#expect(name == "iPad")
|
|
}
|
|
|
|
@Test func `physical iPhone replaces stale Mac compatibility default`() {
|
|
let name = NodeDisplayName.resolve(
|
|
existing: "OpenClaw Mac App",
|
|
deviceName: "QA iPhone",
|
|
interfaceIdiom: .phone,
|
|
isIOSAppOnMac: false)
|
|
|
|
#expect(name == "QA iPhone")
|
|
}
|
|
|
|
@Test func `blank device name falls back to physical device family`() {
|
|
let name = NodeDisplayName.resolve(
|
|
existing: nil,
|
|
deviceName: "",
|
|
interfaceIdiom: .phone,
|
|
isIOSAppOnMac: false)
|
|
|
|
#expect(name == "iPhone Node")
|
|
}
|
|
}
|