-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Expand file tree
/
Copy pathdisconnect_test.go
More file actions
94 lines (77 loc) · 2.56 KB
/
Copy pathdisconnect_test.go
File metadata and controls
94 lines (77 loc) · 2.56 KB
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package codersdk_test
import (
"testing"
"github.com/stretchr/testify/require"
"github.com/coder/coder/v2/codersdk"
)
func TestDisconnectReason_Valid(t *testing.T) {
t.Parallel()
cases := []struct {
reason codersdk.DisconnectReason
valid bool
}{
{codersdk.DisconnectReasonUnknown, true},
{codersdk.DisconnectReasonGraceful, true},
{codersdk.DisconnectReasonClientClosed, true},
{codersdk.DisconnectReasonServerShutdown, true},
{codersdk.DisconnectReasonNetworkError, true},
{codersdk.DisconnectReasonProtocolError, true},
{codersdk.DisconnectReasonWorkspaceStopped, true},
{codersdk.DisconnectReasonControlPlaneLost, true},
{codersdk.DisconnectReason("not_a_real_reason"), false},
}
for _, c := range cases {
require.Equal(t, c.valid, c.reason.Valid(), "reason=%q", c.reason)
}
}
func TestDisconnectReason_Expected(t *testing.T) {
t.Parallel()
expected := map[codersdk.DisconnectReason]bool{
codersdk.DisconnectReasonGraceful: true,
codersdk.DisconnectReasonClientClosed: true,
codersdk.DisconnectReasonServerShutdown: true,
codersdk.DisconnectReasonWorkspaceStopped: true,
codersdk.DisconnectReasonUnknown: false,
codersdk.DisconnectReasonNetworkError: false,
codersdk.DisconnectReasonProtocolError: false,
codersdk.DisconnectReasonControlPlaneLost: false,
}
for reason, want := range expected {
require.Equal(t, want, reason.Expected(), "reason=%q", reason)
}
// Unknown values default to not-expected so that uncategorized
// emit sites surface in the "investigate" bucket.
require.False(t, codersdk.DisconnectReason("not_a_real_reason").Expected())
}
func TestDisconnectInitiator_Valid(t *testing.T) {
t.Parallel()
cases := []struct {
initiator codersdk.DisconnectInitiator
valid bool
}{
{codersdk.DisconnectInitiatorUnknown, true},
{codersdk.DisconnectInitiatorClient, true},
{codersdk.DisconnectInitiatorAgent, true},
{codersdk.DisconnectInitiatorServer, true},
{codersdk.DisconnectInitiatorNetwork, true},
{codersdk.DisconnectInitiator("nobody"), false},
}
for _, c := range cases {
require.Equal(t, c.valid, c.initiator.Valid(), "initiator=%q", c.initiator)
}
}
func TestConnectionMethod_Valid(t *testing.T) {
t.Parallel()
cases := []struct {
method codersdk.ConnectionMethod
valid bool
}{
{codersdk.ConnectionMethodUnknown, true},
{codersdk.ConnectionMethodDirect, true},
{codersdk.ConnectionMethodDERP, true},
{codersdk.ConnectionMethod("magic"), false},
}
for _, c := range cases {
require.Equal(t, c.valid, c.method.Valid(), "method=%q", c.method)
}
}