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

Function TestStopWorkspace

coderd/x/chatd/chattool/stopworkspace_test.go:26–449  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

24)
25
26func TestStopWorkspace(t *testing.T) {
27 t.Parallel()
28
29 t.Run("NoWorkspace", func(t *testing.T) {
30 t.Parallel()
31 ctx := testutil.Context(t, testutil.WaitLong)
32 db, _ := dbtestutil.NewDB(t)
33
34 user := dbgen.User(t, db, database.User{})
35 modelCfg := seedModelConfig(t, db)
36 org := dbgen.Organization(t, db, database.Organization{})
37 _ = dbgen.OrganizationMember(t, db, database.OrganizationMember{
38 UserID: user.ID,
39 OrganizationID: org.ID,
40 })
41 chat := dbgen.Chat(t, db, database.Chat{
42 OrganizationID: org.ID,
43 OwnerID: user.ID,
44 LastModelConfigID: modelCfg.ID,
45 Title: "test-stop-no-workspace",
46 })
47
48 tool := chattool.StopWorkspace(db, chat.ID, chattool.StopWorkspaceOptions{
49 StopFn: func(_ context.Context, _ uuid.UUID, _ uuid.UUID, _ codersdk.CreateWorkspaceBuildRequest) (codersdk.WorkspaceBuild, error) {
50 t.Fatal("StopFn should not be called")
51 return codersdk.WorkspaceBuild{}, nil
52 },
53 WorkspaceMu: &sync.Mutex{},
54 })
55
56 resp, err := tool.Run(ctx, fantasy.ToolCall{ID: "call-1", Name: "stop_workspace", Input: "{}"})
57 require.NoError(t, err)
58 require.Contains(t, resp.Content, "use create_workspace first")
59 })
60
61 t.Run("DeletedWorkspace", func(t *testing.T) {
62 t.Parallel()
63 ctx := testutil.Context(t, testutil.WaitLong)
64 db, _ := dbtestutil.NewDB(t)
65
66 user := dbgen.User(t, db, database.User{})
67 modelCfg := seedModelConfig(t, db)
68 org := dbgen.Organization(t, db, database.Organization{})
69 _ = dbgen.OrganizationMember(t, db, database.OrganizationMember{
70 UserID: user.ID,
71 OrganizationID: org.ID,
72 })
73 wsResp := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
74 OwnerID: user.ID,
75 OrganizationID: org.ID,
76 Deleted: true,
77 }).Seed(database.WorkspaceBuild{
78 Transition: database.WorkspaceTransitionDelete,
79 }).Do()
80 ws := wsResp.Workspace
81
82 chat := dbgen.Chat(t, db, database.Chat{
83 OrganizationID: org.ID,

Callers

nothing calls this directly

Calls 15

ContextFunction · 0.92
NewDBFunction · 0.92
UserFunction · 0.92
OrganizationFunction · 0.92
OrganizationMemberFunction · 0.92
ChatFunction · 0.92
StopWorkspaceFunction · 0.92
WorkspaceBuildFunction · 0.92
TryReceiveFunction · 0.92
seedModelConfigFunction · 0.85
FatalMethod · 0.80
RunMethod · 0.65

Tested by

no test coverage detected