(t *testing.T)
| 43 | ) |
| 44 | |
| 45 | func TestWorkspaceBuild(t *testing.T) { |
| 46 | t.Parallel() |
| 47 | otel.SetTextMapPropagator( |
| 48 | propagation.NewCompositeTextMapPropagator( |
| 49 | propagation.TraceContext{}, |
| 50 | propagation.Baggage{}, |
| 51 | ), |
| 52 | ) |
| 53 | ctx := testutil.Context(t, testutil.WaitLong) |
| 54 | auditor := audit.NewMock() |
| 55 | client, db := coderdtest.NewWithDatabase(t, &coderdtest.Options{ |
| 56 | IncludeProvisionerDaemon: true, |
| 57 | Auditor: auditor, |
| 58 | }) |
| 59 | user := coderdtest.CreateFirstUser(t, client) |
| 60 | up, err := db.UpdateUserProfile(dbauthz.AsSystemRestricted(ctx), database.UpdateUserProfileParams{ |
| 61 | ID: user.UserID, |
| 62 | Email: coderdtest.FirstUserParams.Email, |
| 63 | Username: coderdtest.FirstUserParams.Username, |
| 64 | Name: "Admin", |
| 65 | AvatarURL: client.URL.String(), |
| 66 | UpdatedAt: dbtime.Now(), |
| 67 | }) |
| 68 | require.NoError(t, err) |
| 69 | version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil) |
| 70 | template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID) |
| 71 | coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID) |
| 72 | auditor.ResetLogs() |
| 73 | workspace := coderdtest.CreateWorkspace(t, client, template.ID) |
| 74 | _ = coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID) |
| 75 | // Create workspace will also start a build, so we need to wait for |
| 76 | // it to ensure all events are recorded. |
| 77 | require.Eventually(t, func() bool { |
| 78 | logs := auditor.AuditLogs() |
| 79 | return len(logs) == 2 && |
| 80 | assert.Equal(t, logs[0].Ip.IPNet.IP.String(), "127.0.0.1") && |
| 81 | assert.Equal(t, logs[1].Ip.IPNet.IP.String(), "127.0.0.1") |
| 82 | }, testutil.WaitShort, testutil.IntervalFast) |
| 83 | wb, err := client.WorkspaceBuild(testutil.Context(t, testutil.WaitShort), workspace.LatestBuild.ID) |
| 84 | require.NoError(t, err) |
| 85 | require.Equal(t, up.Username, wb.WorkspaceOwnerName) |
| 86 | require.Equal(t, up.AvatarURL, wb.WorkspaceOwnerAvatarURL) |
| 87 | } |
| 88 | |
| 89 | func TestWorkspaceBuildByBuildNumber(t *testing.T) { |
| 90 | t.Parallel() |
nothing calls this directly
no test coverage detected