(t *testing.T)
| 8997 | } |
| 8998 | |
| 8999 | func TestPromoteChatQueuedMessage(t *testing.T) { |
| 9000 | t.Parallel() |
| 9001 | |
| 9002 | t.Run("Success", func(t *testing.T) { |
| 9003 | t.Parallel() |
| 9004 | |
| 9005 | ctx := testutil.Context(t, testutil.WaitLong) |
| 9006 | client, db := newChatClientWithDatabase(t) |
| 9007 | user := coderdtest.CreateFirstUser(t, client.Client) |
| 9008 | modelConfig := createChatModelConfig(t, client) |
| 9009 | |
| 9010 | chat := dbgen.Chat(t, db, database.Chat{ |
| 9011 | OrganizationID: user.OrganizationID, |
| 9012 | OwnerID: user.UserID, |
| 9013 | LastModelConfigID: modelConfig.ID, |
| 9014 | Title: "promote queued message route test", |
| 9015 | }) |
| 9016 | |
| 9017 | const queuedText = "queued message for promote route" |
| 9018 | queuedContent, err := json.Marshal([]codersdk.ChatMessagePart{ |
| 9019 | codersdk.ChatMessageText(queuedText), |
| 9020 | }) |
| 9021 | require.NoError(t, err) |
| 9022 | queuedMessage, err := db.InsertChatQueuedMessage( |
| 9023 | dbauthz.AsSystemRestricted(ctx), |
| 9024 | database.InsertChatQueuedMessageParams{ |
| 9025 | ChatID: chat.ID, |
| 9026 | Content: queuedContent, |
| 9027 | }, |
| 9028 | ) |
| 9029 | require.NoError(t, err) |
| 9030 | |
| 9031 | promoteRes, err := client.Request( |
| 9032 | ctx, |
| 9033 | http.MethodPost, |
| 9034 | fmt.Sprintf("/api/experimental/chats/%s/queue/%d/promote", chat.ID, queuedMessage.ID), |
| 9035 | nil, |
| 9036 | ) |
| 9037 | require.NoError(t, err) |
| 9038 | defer promoteRes.Body.Close() |
| 9039 | require.Equal(t, http.StatusAccepted, promoteRes.StatusCode) |
| 9040 | |
| 9041 | var resp codersdk.Response |
| 9042 | require.NoError(t, json.NewDecoder(promoteRes.Body).Decode(&resp)) |
| 9043 | require.NotEmpty(t, resp.Message) |
| 9044 | |
| 9045 | messagesResult, err := client.GetChatMessages(ctx, chat.ID, nil) |
| 9046 | require.NoError(t, err) |
| 9047 | for _, queued := range messagesResult.QueuedMessages { |
| 9048 | require.NotEqual(t, queuedMessage.ID, queued.ID) |
| 9049 | } |
| 9050 | |
| 9051 | foundPromoted := false |
| 9052 | for _, msg := range messagesResult.Messages { |
| 9053 | if msg.Role != codersdk.ChatMessageRoleUser { |
| 9054 | continue |
| 9055 | } |
| 9056 | for _, part := range msg.Content { |
nothing calls this directly
no test coverage detected