(ctx context.Context, t *testing.T, client *codersdk.Client, db database.Store, user codersdk.CreateFirstUserResponse)
| 225 | } |
| 226 | |
| 227 | func setupWorkspaceAndAgent(ctx context.Context, t *testing.T, client *codersdk.Client, db database.Store, user codersdk.CreateFirstUserResponse) (codersdk.Workspace, codersdk.WorkspaceAgent) { |
| 228 | // This is a valid zip file |
| 229 | zipBytes := make([]byte, 22) |
| 230 | zipBytes[0] = 80 |
| 231 | zipBytes[1] = 75 |
| 232 | zipBytes[2] = 0o5 |
| 233 | zipBytes[3] = 0o6 |
| 234 | uploadRes, err := client.Upload(ctx, codersdk.ContentTypeZip, bytes.NewReader(zipBytes)) |
| 235 | require.NoError(t, err) |
| 236 | |
| 237 | tv := dbfake.TemplateVersion(t, db). |
| 238 | FileID(uploadRes.ID). |
| 239 | Seed(database.TemplateVersion{ |
| 240 | OrganizationID: user.OrganizationID, |
| 241 | CreatedBy: user.UserID, |
| 242 | }). |
| 243 | Do() |
| 244 | wbr := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{ |
| 245 | OrganizationID: user.OrganizationID, |
| 246 | OwnerID: user.UserID, |
| 247 | TemplateID: tv.Template.ID, |
| 248 | }).Resource().WithAgent().Do() |
| 249 | ws, err := client.Workspace(ctx, wbr.Workspace.ID) |
| 250 | require.NoError(t, err) |
| 251 | agt := ws.LatestBuild.Resources[0].Agents[0] |
| 252 | |
| 253 | // Insert a provisioner job log |
| 254 | _, err = db.InsertProvisionerJobLogs(ctx, database.InsertProvisionerJobLogsParams{ |
| 255 | JobID: wbr.Build.JobID, |
| 256 | CreatedAt: []time.Time{dbtime.Now()}, |
| 257 | Source: []database.LogSource{database.LogSourceProvisionerDaemon}, |
| 258 | Level: []database.LogLevel{database.LogLevelInfo}, |
| 259 | Stage: []string{"The World"}, |
| 260 | Output: []string{"Players"}, |
| 261 | }) |
| 262 | require.NoError(t, err) |
| 263 | // Insert an agent log |
| 264 | _, err = db.InsertWorkspaceAgentLogs(ctx, database.InsertWorkspaceAgentLogsParams{ |
| 265 | AgentID: agt.ID, |
| 266 | CreatedAt: dbtime.Now(), |
| 267 | Output: []string{"Bond, James Bond"}, |
| 268 | Level: []database.LogLevel{database.LogLevelInfo}, |
| 269 | LogSourceID: wbr.Build.JobID, |
| 270 | OutputLength: 0o7, |
| 271 | }) |
| 272 | require.NoError(t, err) |
| 273 | |
| 274 | tempDir := t.TempDir() |
| 275 | logPath := filepath.Join(tempDir, "coder-agent.log") |
| 276 | require.NoError(t, os.WriteFile(logPath, []byte("hello from the agent"), 0o600)) |
| 277 | _ = agenttest.New(t, client.URL, wbr.AgentToken, func(o *agent.Options) { |
| 278 | o.LogDir = tempDir |
| 279 | }) |
| 280 | coderdtest.NewWorkspaceAgentWaiter(t, client, wbr.Workspace.ID).Wait() |
| 281 | |
| 282 | return ws, agt |
| 283 | } |
| 284 |
no test coverage detected