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

Function TestUpdateChatHeartbeatsRequiresOwnership

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

Source from the content-addressed store, hash-verified

1833}
1834
1835func TestUpdateChatHeartbeatsRequiresOwnership(t *testing.T) {
1836 t.Parallel()
1837
1838 db, ps := dbtestutil.NewDB(t)
1839 replica := newTestServer(t, db, ps, uuid.New())
1840
1841 ctx := testutil.Context(t, testutil.WaitLong)
1842 user, org, model := seedChatDependencies(t, db)
1843
1844 chat, err := replica.CreateChat(ctx, chatd.CreateOptions{
1845 OrganizationID: org.ID,
1846 OwnerID: user.ID,
1847 Title: "heartbeat-ownership",
1848 ModelConfigID: model.ID,
1849 InitialUserContent: []codersdk.ChatMessagePart{codersdk.ChatMessageText("hello")},
1850 })
1851 require.NoError(t, err)
1852
1853 workerID := uuid.New()
1854 chat, err = db.UpdateChatStatus(ctx, database.UpdateChatStatusParams{
1855 ID: chat.ID,
1856 Status: database.ChatStatusRunning,
1857 WorkerID: uuid.NullUUID{UUID: workerID, Valid: true},
1858 StartedAt: sql.NullTime{Time: time.Now(), Valid: true},
1859 HeartbeatAt: sql.NullTime{Time: time.Now(), Valid: true},
1860 })
1861 require.NoError(t, err)
1862
1863 // Wrong worker_id should return no IDs.
1864 ids, err := db.UpdateChatHeartbeats(ctx, database.UpdateChatHeartbeatsParams{
1865 IDs: []uuid.UUID{chat.ID},
1866 WorkerID: uuid.New(),
1867 Now: time.Now(),
1868 })
1869 require.NoError(t, err)
1870 require.Empty(t, ids)
1871
1872 // Correct worker_id should return the chat's ID.
1873 ids, err = db.UpdateChatHeartbeats(ctx, database.UpdateChatHeartbeatsParams{
1874 IDs: []uuid.UUID{chat.ID},
1875 WorkerID: workerID,
1876 Now: time.Now(),
1877 })
1878 require.NoError(t, err)
1879 require.Len(t, ids, 1)
1880 require.Equal(t, chat.ID, ids[0])
1881}
1882
1883func TestCreateChatPersistsAPIKeyIDOnInitialUserMessage(t *testing.T) {
1884 t.Parallel()

Callers

nothing calls this directly

Calls 12

NewDBFunction · 0.92
ContextFunction · 0.92
ChatMessageTextFunction · 0.92
newTestServerFunction · 0.70
seedChatDependenciesFunction · 0.70
NewMethod · 0.65
CreateChatMethod · 0.65
UpdateChatStatusMethod · 0.65
UpdateChatHeartbeatsMethod · 0.65
EmptyMethod · 0.45
LenMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected