Files
callstack__agent-device/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Models.swift
T

124 lines
2.2 KiB
Swift
Raw Normal View History

// MARK: - Wire Models
enum CommandType: String, Codable {
case tap
case mouseClick
case tapSeries
case longPress
case drag
case dragSeries
case type
case swipe
case findText
case snapshot
case screenshot
case back
case home
case appSwitcher
case alert
case pinch
case recordStart
case recordStop
case shutdown
}
enum SwipeDirection: String, Codable {
case up
case down
case left
case right
}
struct Command: Codable {
let command: CommandType
let appBundleId: String?
let text: String?
let clearFirst: Bool?
let action: String?
let x: Double?
let y: Double?
let button: String?
let count: Double?
let intervalMs: Double?
let doubleTap: Bool?
let pauseMs: Double?
let pattern: String?
let x2: Double?
let y2: Double?
let durationMs: Double?
let direction: SwipeDirection?
let scale: Double?
let outPath: String?
let fps: Int?
let interactiveOnly: Bool?
let compact: Bool?
let depth: Int?
let scope: String?
let raw: Bool?
}
struct Response: Codable {
let ok: Bool
let data: DataPayload?
let error: ErrorPayload?
init(ok: Bool, data: DataPayload? = nil, error: ErrorPayload? = nil) {
self.ok = ok
self.data = data
self.error = error
}
}
struct DataPayload: Codable {
let message: String?
let found: Bool?
let items: [String]?
let nodes: [SnapshotNode]?
let truncated: Bool?
init(
message: String? = nil,
found: Bool? = nil,
items: [String]? = nil,
nodes: [SnapshotNode]? = nil,
truncated: Bool? = nil
) {
self.message = message
self.found = found
self.items = items
self.nodes = nodes
self.truncated = truncated
}
}
struct ErrorPayload: Codable {
let message: String
}
struct SnapshotRect: Codable {
let x: Double
let y: Double
let width: Double
let height: Double
}
struct SnapshotNode: Codable {
let index: Int
let type: String
let label: String?
let identifier: String?
let value: String?
let rect: SnapshotRect
let enabled: Bool
let hittable: Bool
let depth: Int
}
struct SnapshotOptions {
let interactiveOnly: Bool
let compact: Bool
let depth: Int?
let scope: String?
let raw: Bool
}