(t *testing.T)
| 6239 | } |
| 6240 | |
| 6241 | func TestPostChatMessages(t *testing.T) { |
| 6242 | t.Parallel() |
| 6243 | |
| 6244 | t.Run("Success", func(t *testing.T) { |
| 6245 | t.Parallel() |
| 6246 | |
| 6247 | ctx := testutil.Context(t, testutil.WaitLong) |
| 6248 | client := newChatClient(t) |
| 6249 | firstUser := coderdtest.CreateFirstUser(t, client.Client) |
| 6250 | _ = createChatModelConfig(t, client) |
| 6251 | |
| 6252 | chat, err := client.CreateChat(ctx, codersdk.CreateChatRequest{ |
| 6253 | OrganizationID: firstUser.OrganizationID, |
| 6254 | Content: []codersdk.ChatInputPart{ |
| 6255 | { |
| 6256 | Type: codersdk.ChatInputPartTypeText, |
| 6257 | Text: "initial message for post route test", |
| 6258 | }, |
| 6259 | }, |
| 6260 | }) |
| 6261 | require.NoError(t, err) |
| 6262 | |
| 6263 | hasTextPart := func(parts []codersdk.ChatMessagePart, want string) bool { |
| 6264 | for _, part := range parts { |
| 6265 | if part.Type == codersdk.ChatMessagePartTypeText && part.Text == want { |
| 6266 | return true |
| 6267 | } |
| 6268 | } |
| 6269 | return false |
| 6270 | } |
| 6271 | |
| 6272 | messageText := "post message route success " + uuid.NewString() |
| 6273 | created, err := client.CreateChatMessage(ctx, chat.ID, codersdk.CreateChatMessageRequest{ |
| 6274 | Content: []codersdk.ChatInputPart{ |
| 6275 | { |
| 6276 | Type: codersdk.ChatInputPartTypeText, |
| 6277 | Text: messageText, |
| 6278 | }, |
| 6279 | }, |
| 6280 | }) |
| 6281 | require.NoError(t, err) |
| 6282 | |
| 6283 | if created.Queued { |
| 6284 | require.Nil(t, created.Message) |
| 6285 | require.NotNil(t, created.QueuedMessage) |
| 6286 | require.Equal(t, chat.ID, created.QueuedMessage.ChatID) |
| 6287 | require.NotZero(t, created.QueuedMessage.ID) |
| 6288 | require.True(t, hasTextPart(created.QueuedMessage.Content, messageText)) |
| 6289 | |
| 6290 | require.Eventually(t, func() bool { |
| 6291 | messagesResult, getErr := client.GetChatMessages(ctx, chat.ID, nil) |
| 6292 | if getErr != nil { |
| 6293 | return false |
| 6294 | } |
| 6295 | |
| 6296 | for _, queued := range messagesResult.QueuedMessages { |
| 6297 | if queued.ID == created.QueuedMessage.ID && |
| 6298 | queued.ChatID == chat.ID && |
nothing calls this directly
no test coverage detected