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

Function TestChat_LastErrorFallback

coderd/database/db2sdk/db2sdk_test.go:1072–1157  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1070}
1071
1072func TestChat_LastErrorFallback(t *testing.T) {
1073 t.Parallel()
1074
1075 const fallbackMessage = "The chat request failed unexpectedly."
1076
1077 tests := []struct {
1078 name string
1079 raw json.RawMessage
1080 expectPayload *codersdk.ChatError
1081 }{
1082 {
1083 name: "MalformedJSON",
1084 raw: json.RawMessage(`{`),
1085 expectPayload: &codersdk.ChatError{
1086 Message: fallbackMessage,
1087 Kind: codersdk.ChatErrorKindGeneric,
1088 Retryable: false,
1089 },
1090 },
1091 {
1092 name: "MessageMissingPreservesMetadata",
1093 raw: json.RawMessage(`{"kind":"timeout","provider":"openai","status_code":504}`),
1094 expectPayload: &codersdk.ChatError{
1095 Message: fallbackMessage,
1096 Kind: codersdk.ChatErrorKindTimeout,
1097 Provider: "openai",
1098 Retryable: false,
1099 StatusCode: 504,
1100 },
1101 },
1102 {
1103 name: "WhitespaceMessageDefaultsKind",
1104 raw: json.RawMessage(`{"message":" ","provider":"openai"}`),
1105 expectPayload: &codersdk.ChatError{
1106 Message: fallbackMessage,
1107 Kind: codersdk.ChatErrorKindGeneric,
1108 Provider: "openai",
1109 Retryable: false,
1110 },
1111 },
1112 {
1113 name: "KindMissingDefaultsGeneric",
1114 raw: json.RawMessage(`{"message":"OpenAI returned an unexpected error.","provider":"openai","status_code":502}`),
1115 expectPayload: &codersdk.ChatError{
1116 Message: "OpenAI returned an unexpected error.",
1117 Kind: codersdk.ChatErrorKindGeneric,
1118 Provider: "openai",
1119 Retryable: false,
1120 StatusCode: 502,
1121 },
1122 },
1123 {
1124 name: "UsageLimitKindRoundTrips",
1125 raw: json.RawMessage(`{"message":"Usage limit reached.","kind":"usage_limit"}`),
1126 expectPayload: &codersdk.ChatError{
1127 Message: "Usage limit reached.",
1128 Kind: codersdk.ChatErrorKindUsageLimit,
1129 Retryable: false,

Callers

nothing calls this directly

Calls 5

NowFunction · 0.92
ChatFunction · 0.92
RunMethod · 0.65
NewMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected