MCPcopy Create free account
hub / github.com/coder/coder / TestWorker_MarkStale_UpsertAndPublish

Function TestWorker_MarkStale_UpsertAndPublish

coderd/x/gitsync/worker_test.go:600–664  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

598}
599
600func TestWorker_MarkStale_UpsertAndPublish(t *testing.T) {
601 t.Parallel()
602 ctx := testutil.Context(t, testutil.WaitShort)
603
604 workspaceID := uuid.New()
605 ownerID := uuid.New()
606 chat1 := uuid.New()
607 chat2 := uuid.New()
608
609 var mu sync.Mutex
610 var upsertRefCalls []database.UpsertChatDiffStatusReferenceParams
611 var publishedIDs []uuid.UUID
612
613 ctrl := gomock.NewController(t)
614 store := dbmock.NewMockStore(ctrl)
615
616 store.EXPECT().GetChatsByWorkspaceIDs(gomock.Any(), gomock.Any()).
617 DoAndReturn(func(_ context.Context, ids []uuid.UUID) ([]database.Chat, error) {
618 require.Equal(t, []uuid.UUID{workspaceID}, ids)
619 return []database.Chat{
620 {ID: chat1, OwnerID: ownerID, WorkspaceID: uuid.NullUUID{UUID: workspaceID, Valid: true}},
621 {ID: chat2, OwnerID: ownerID, WorkspaceID: uuid.NullUUID{UUID: workspaceID, Valid: true}},
622 }, nil
623 })
624 store.EXPECT().UpsertChatDiffStatusReference(gomock.Any(), gomock.Any()).DoAndReturn(func(_ context.Context, arg database.UpsertChatDiffStatusReferenceParams) (database.ChatDiffStatus, error) {
625 mu.Lock()
626 upsertRefCalls = append(upsertRefCalls, arg)
627 mu.Unlock()
628 return database.ChatDiffStatus{ChatID: arg.ChatID}, nil
629 }).Times(2)
630
631 pub := func(_ context.Context, chatID uuid.UUID) error {
632 mu.Lock()
633 publishedIDs = append(publishedIDs, chatID)
634 mu.Unlock()
635 return nil
636 }
637
638 mClock := quartz.NewMock(t)
639 now := mClock.Now()
640 logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: true})
641 refresher := newTestRefresher(t, mClock)
642 worker := gitsync.NewWorker(store, refresher, pub, mClock, logger)
643
644 worker.MarkStale(ctx, gitsync.MarkStaleParams{
645 WorkspaceID: workspaceID,
646 Branch: "feature",
647 Origin: "https://github.com/owner/repo",
648 })
649
650 mu.Lock()
651 defer mu.Unlock()
652
653 require.Len(t, upsertRefCalls, 2)
654 for _, call := range upsertRefCalls {
655 assert.Equal(t, "feature", call.GitBranch)
656 assert.Equal(t, "https://github.com/owner/repo", call.GitRemoteOrigin)
657 assert.True(t, call.StaleAt.Before(now),

Callers

nothing calls this directly

Calls 13

EXPECTMethod · 0.95
MarkStaleMethod · 0.95
ContextFunction · 0.92
NewMockStoreFunction · 0.92
NewWorkerFunction · 0.92
newTestRefresherFunction · 0.85
NewMethod · 0.65
EqualMethod · 0.45
LockMethod · 0.45
UnlockMethod · 0.45

Tested by

no test coverage detected