MCPcopy Index your code
hub / github.com/coder/coder / TestClassifyCoordinatorRPCExit

Function TestClassifyCoordinatorRPCExit

agent/agent_internal_test.go:93–144  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

91}
92
93func TestClassifyCoordinatorRPCExit(t *testing.T) {
94 t.Parallel()
95
96 canceled, cancel := context.WithCancel(context.Background())
97 cancel()
98
99 cases := []struct {
100 name string
101 ctx context.Context
102 retErr error
103 reason codersdk.DisconnectReason
104 initiator codersdk.DisconnectInitiator
105 }{
106 {
107 name: "local shutdown, no error",
108 ctx: canceled,
109 retErr: nil,
110 reason: codersdk.DisconnectReasonServerShutdown,
111 initiator: codersdk.DisconnectInitiatorAgent,
112 },
113 {
114 name: "local shutdown, with cleanup error",
115 ctx: canceled,
116 retErr: xerrors.New("close timed out"),
117 reason: codersdk.DisconnectReasonServerShutdown,
118 initiator: codersdk.DisconnectInitiatorAgent,
119 },
120 {
121 name: "remote graceful, no error",
122 ctx: context.Background(),
123 retErr: nil,
124 reason: codersdk.DisconnectReasonGraceful,
125 initiator: codersdk.DisconnectInitiatorServer,
126 },
127 {
128 name: "stream broke unexpectedly",
129 ctx: context.Background(),
130 retErr: xerrors.New("read: connection reset"),
131 reason: codersdk.DisconnectReasonNetworkError,
132 initiator: codersdk.DisconnectInitiatorNetwork,
133 },
134 }
135
136 for _, tc := range cases {
137 t.Run(tc.name, func(t *testing.T) {
138 t.Parallel()
139 reason, initiator := classifyCoordinatorRPCExit(tc.ctx, tc.retErr)
140 require.Equal(t, tc.reason, reason)
141 require.Equal(t, tc.initiator, initiator)
142 })
143 }
144}

Callers

nothing calls this directly

Calls 4

NewMethod · 0.65
RunMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected