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

Function TestSendMessageQueueBehaviorQueuesWhenBusy

coderd/x/chatd/chatd_test.go:1950–2000  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1948}
1949
1950func TestSendMessageQueueBehaviorQueuesWhenBusy(t *testing.T) {
1951 t.Parallel()
1952
1953 db, ps := dbtestutil.NewDB(t)
1954 replica := newTestServer(t, db, ps, uuid.New())
1955
1956 ctx := testutil.Context(t, testutil.WaitLong)
1957 user, org, model := seedChatDependencies(t, db)
1958
1959 chat, err := replica.CreateChat(ctx, chatd.CreateOptions{
1960 OrganizationID: org.ID,
1961 OwnerID: user.ID,
1962 Title: "queue-when-busy",
1963 ModelConfigID: model.ID,
1964 InitialUserContent: []codersdk.ChatMessagePart{codersdk.ChatMessageText("hello")},
1965 })
1966 require.NoError(t, err)
1967
1968 workerID := uuid.New()
1969 chat, err = db.UpdateChatStatus(ctx, database.UpdateChatStatusParams{
1970 ID: chat.ID,
1971 Status: database.ChatStatusRunning,
1972 WorkerID: uuid.NullUUID{UUID: workerID, Valid: true},
1973 StartedAt: sql.NullTime{Time: time.Now(), Valid: true},
1974 HeartbeatAt: sql.NullTime{Time: time.Now(), Valid: true},
1975 })
1976 require.NoError(t, err)
1977
1978 result, err := replica.SendMessage(ctx, chatd.SendMessageOptions{
1979 ChatID: chat.ID,
1980 Content: []codersdk.ChatMessagePart{codersdk.ChatMessageText("queued")},
1981 BusyBehavior: chatd.SendMessageBusyBehaviorQueue,
1982 })
1983 require.NoError(t, err)
1984 require.True(t, result.Queued)
1985 require.NotNil(t, result.QueuedMessage)
1986 require.Equal(t, database.ChatStatusRunning, result.Chat.Status)
1987 require.Equal(t, workerID, result.Chat.WorkerID.UUID)
1988 require.True(t, result.Chat.WorkerID.Valid)
1989
1990 queued, err := db.GetChatQueuedMessages(ctx, chat.ID)
1991 require.NoError(t, err)
1992 require.Len(t, queued, 1)
1993
1994 messages, err := db.GetChatMessagesByChatID(ctx, database.GetChatMessagesByChatIDParams{
1995 ChatID: chat.ID,
1996 AfterID: 0,
1997 })
1998 require.NoError(t, err)
1999 require.Len(t, messages, 1)
2000}
2001
2002func TestPlanTurnPromptContract(t *testing.T) {
2003 t.Parallel()

Callers

nothing calls this directly

Calls 13

NewDBFunction · 0.92
ContextFunction · 0.92
ChatMessageTextFunction · 0.92
SendMessageMethod · 0.80
newTestServerFunction · 0.70
seedChatDependenciesFunction · 0.70
NewMethod · 0.65
CreateChatMethod · 0.65
UpdateChatStatusMethod · 0.65
GetChatQueuedMessagesMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected