@@ -32,6 +32,21 @@ struct VPNMenuTests {
3232 }
3333 }
3434
35+ @Test
36+ func testVPNLoggedOutUnconfigured( ) async throws {
37+ vpn. state = . failed( . networkExtensionError( . unconfigured) )
38+ try await ViewHosting . host ( view) {
39+ try await sut. inspection. inspect { view in
40+ let toggle = try view. find ( ViewType . Toggle. self)
41+ // Toggle should be enabled even with a failure that would
42+ // normally make it disabled, because we're signed out.
43+ #expect( !toggle. isDisabled ( ) )
44+ #expect( throws: Never . self) { try view. find ( text: " Sign in to use Coder Desktop " ) }
45+ #expect( throws: Never . self) { try view. find ( button: " Sign in " ) }
46+ }
47+ }
48+ }
49+
3550 @Test
3651 func testStartStopCalled( ) async throws {
3752 try await ViewHosting . host ( view) {
@@ -59,6 +74,7 @@ struct VPNMenuTests {
5974 @Test
6075 func testVPNDisabledWhileConnecting( ) async throws {
6176 vpn. state = . disabled
77+ state. login ( baseAccessURL: URL ( string: " https://coder.example.com " ) !, sessionToken: " fake-token " )
6278
6379 try await ViewHosting . host ( view) {
6480 try await sut. inspection. inspect { view in
@@ -79,6 +95,7 @@ struct VPNMenuTests {
7995 @Test
8096 func testVPNDisabledWhileDisconnecting( ) async throws {
8197 vpn. state = . disabled
98+ state. login ( baseAccessURL: URL ( string: " https://coder.example.com " ) !, sessionToken: " fake-token " )
8299
83100 try await ViewHosting . host ( view) {
84101 try await sut. inspection. inspect { view in
0 commit comments