(t *testing.T)
| 415 | } |
| 416 | |
| 417 | func TestChatGPTFetch_WorkspaceFetch(t *testing.T) { |
| 418 | t.Parallel() |
| 419 | |
| 420 | tests := []struct { |
| 421 | name string |
| 422 | setupWorkspace bool |
| 423 | objectID string // if empty, will use real workspace ID |
| 424 | expectError bool |
| 425 | errorContains string |
| 426 | }{ |
| 427 | { |
| 428 | name: "ValidWorkspaceFetch", |
| 429 | setupWorkspace: true, |
| 430 | expectError: false, |
| 431 | }, |
| 432 | { |
| 433 | name: "NonExistentWorkspaceID", |
| 434 | setupWorkspace: false, |
| 435 | objectID: "workspace:" + uuid.NewString(), |
| 436 | expectError: true, |
| 437 | errorContains: "Resource not found", |
| 438 | }, |
| 439 | } |
| 440 | |
| 441 | for _, tt := range tests { |
| 442 | t.Run(tt.name, func(t *testing.T) { |
| 443 | t.Parallel() |
| 444 | |
| 445 | // Setup |
| 446 | client, store := coderdtest.NewWithDatabase(t, nil) |
| 447 | owner := coderdtest.CreateFirstUser(t, client) |
| 448 | |
| 449 | var workspaceID string |
| 450 | var expectedWorkspace database.WorkspaceTable |
| 451 | if tt.setupWorkspace { |
| 452 | workspace := dbfake.WorkspaceBuild(t, store, database.WorkspaceTable{ |
| 453 | OrganizationID: owner.OrganizationID, |
| 454 | OwnerID: owner.UserID, |
| 455 | }).Do() |
| 456 | expectedWorkspace = workspace.Workspace |
| 457 | workspaceID = "workspace:" + workspace.Workspace.ID.String() |
| 458 | } else if tt.objectID != "" { |
| 459 | workspaceID = tt.objectID |
| 460 | } |
| 461 | |
| 462 | // Create tool dependencies |
| 463 | deps, err := toolsdk.NewDeps(client) |
| 464 | require.NoError(t, err) |
| 465 | |
| 466 | // Execute tool |
| 467 | args := toolsdk.FetchArgs{ID: workspaceID} |
| 468 | result, err := testTool(t, toolsdk.ChatGPTFetch, deps, args) |
| 469 | |
| 470 | // Verify results |
| 471 | if tt.expectError { |
| 472 | require.Error(t, err) |
| 473 | if tt.errorContains != "" { |
| 474 | require.Contains(t, err.Error(), tt.errorContains) |
nothing calls this directly
no test coverage detected