@@ -7,39 +7,48 @@ class PreviewVPN: Desktop.CoderVPN {
7
7
AgentRow ( id: UUID ( ) , name: " testing-a-very-long-name " , status: . green, copyableDNS: " asdf.coder " ) ,
8
8
AgentRow ( id: UUID ( ) , name: " opensrc " , status: . yellow, copyableDNS: " asdf.coder " ) ,
9
9
AgentRow ( id: UUID ( ) , name: " gvisor " , status: . gray, copyableDNS: " asdf.coder " ) ,
10
- AgentRow ( id: UUID ( ) , name: " example " , status: . gray, copyableDNS: " asdf.coder " )
10
+ AgentRow ( id: UUID ( ) , name: " example " , status: . gray, copyableDNS: " asdf.coder " ) ,
11
+ AgentRow ( id: UUID ( ) , name: " dogfood2 " , status: . red, copyableDNS: " asdf.coder " ) ,
12
+ AgentRow ( id: UUID ( ) , name: " testing-a-very-long-name " , status: . green, copyableDNS: " asdf.coder " ) ,
13
+ AgentRow ( id: UUID ( ) , name: " opensrc " , status: . yellow, copyableDNS: " asdf.coder " ) ,
14
+ AgentRow ( id: UUID ( ) , name: " gvisor " , status: . gray, copyableDNS: " asdf.coder " ) ,
15
+ AgentRow ( id: UUID ( ) , name: " example " , status: . gray, copyableDNS: " asdf.coder " ) ,
11
16
]
12
- func start( ) async {
13
- await MainActor . run {
14
- state= . connecting
15
- }
16
- do {
17
- try await Task . sleep ( nanoseconds: 1_000_000_000 )
18
- } catch {
19
- await MainActor . run {
20
- state= . failed( " Timed out starting CoderVPN " )
21
- }
22
- return
23
- }
24
- await MainActor . run {
25
- state= . connected
26
- }
27
- }
17
+ let shouldFail : Bool
28
18
29
- func stop( ) async {
19
+ init ( shouldFail: Bool = false ) {
20
+ self . shouldFail= shouldFail
21
+ }
22
+
23
+ private func setState( _ newState: Desktop . CoderVPNState ) async {
30
24
await MainActor . run {
31
- state= . disconnecting
25
+ self . state= newState
32
26
}
27
+ }
28
+
29
+ func start( ) async {
30
+ await setState ( . connecting)
33
31
do {
34
- try await Task . sleep ( nanoseconds: 1_000_000_000 ) // Simulate network delay
32
+ try await Task . sleep ( nanoseconds: 1000000000 )
35
33
} catch {
36
- await MainActor . run {
37
- state= . failed( " Timed out stopping CoderVPN " )
38
- }
34
+ await setState ( . failed( . exampleError) )
39
35
return
40
36
}
41
- await MainActor . run {
42
- state= . disabled
37
+ if shouldFail{
38
+ await setState ( . failed( . exampleError) )
39
+ } else {
40
+ await setState ( . connected)
41
+ }
42
+ }
43
+
44
+ func stop( ) async {
45
+ await setState ( . disconnecting)
46
+ do {
47
+ try await Task . sleep ( nanoseconds: 1000000000 ) // Simulate network delay
48
+ } catch {
49
+ await setState ( . failed( . exampleError) )
50
+ return
43
51
}
52
+ await setState ( . disabled)
44
53
}
45
54
}