@@ -7,39 +7,48 @@ class PreviewVPN: Desktop.CoderVPN {
77AgentRow ( id: UUID ( ) , name: " testing-a-very-long-name " , status: . green, copyableDNS: " asdf.coder " ) ,
88AgentRow ( id: UUID ( ) , name: " opensrc " , status: . yellow, copyableDNS: " asdf.coder " ) ,
99AgentRow ( 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 " ) ,
1116]
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
2818
29- func stop( ) async {
19+ init ( shouldFail: Bool = false ) {
20+ self . shouldFail= shouldFail
21+ }
22+
23+ private func setState( _ newState: Desktop . CoderVPNState ) async {
3024await MainActor . run {
31- state= . disconnecting
25+ self . state= newState
3226}
27+ }
28+
29+ func start( ) async {
30+ await setState ( . connecting)
3331do {
34- try await Task . sleep ( nanoseconds: 1_000_000_000 ) // Simulate network delay
32+ try await Task . sleep ( nanoseconds: 1000000000 )
3533} catch {
36- await MainActor . run {
37- state= . failed( " Timed out stopping CoderVPN " )
38- }
34+ await setState ( . failed( . exampleError) )
3935return
4036}
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
4351}
52+ await setState ( . disabled)
4453}
4554}