-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathUtil.swift
75 lines (65 loc) · 1.95 KB
/
Util.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
@testable import Coder_Desktop
import Combine
import SwiftUI
import ViewInspector
@MainActor
class MockVPNService: VPNService, ObservableObject {
@Published var state: Coder_Desktop.VPNServiceState = .disabled
@Published var baseAccessURL: URL = .init(string: "https://dev.coder.com")!
@Published var agents: [Coder_Desktop.Agent] = []
var onStart: (() async -> Void)?
var onStop: (() async -> Void)?
func start() async {
state = .connecting
await onStart?()
}
func stop() async {
state = .disconnecting
await onStop?()
}
}
class MockSession: Session {
@Published
var hasSession: Bool = true
@Published
var sessionToken: String? = "fake-token"
@Published
var baseAccessURL: URL? = URL(string: "https://dev.coder.com")!
func store(baseAccessURL _: URL, sessionToken _: String) {
hasSession = true
baseAccessURL = URL(string: "https://dev.coder.com")!
sessionToken = "fake-token"
}
func clear() {
hasSession = false
sessionToken = nil
baseAccessURL = nil
}
}
struct MockClient: Client {
init(url _: URL, token _: String? = nil) {}
func user(_: String) async throws(ClientError) -> Coder_Desktop.User {
User(
id: UUID(),
username: "admin",
avatar_url: "",
name: "admin",
email: "[email protected]",
created_at: Date.now,
updated_at: Date.now,
last_seen_at: Date.now,
status: "active",
login_type: "none",
theme_preference: "dark",
organization_ids: [],
roles: []
)
}
}
struct MockErrorClient: Client {
init(url _: URL, token _: String?) {}
func user(_: String) async throws(ClientError) -> Coder_Desktop.User {
throw .reqError(.explicitlyCancelled)
}
}
extension Inspection: @unchecked Sendable, @retroactive InspectionEmissary {}