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

Function TestCompleteJob

coderd/provisionerdserver/provisionerdserver_test.go:1508–3643  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1506}
1507
1508func TestCompleteJob(t *testing.T) {
1509 t.Parallel()
1510 ctx := context.Background()
1511 t.Run("NotFound", func(t *testing.T) {
1512 t.Parallel()
1513 srv, _, _, _ := setup(t, false, nil)
1514 _, err := srv.CompleteJob(ctx, &proto.CompletedJob{
1515 JobId: "hello",
1516 })
1517 require.ErrorContains(t, err, "invalid UUID")
1518
1519 _, err = srv.CompleteJob(ctx, &proto.CompletedJob{
1520 JobId: uuid.NewString(),
1521 })
1522 require.ErrorContains(t, err, "no rows in result set")
1523 })
1524 // This test prevents runners from updating jobs they don't own!
1525 t.Run("NotOwner", func(t *testing.T) {
1526 t.Parallel()
1527 srv, db, _, pd := setup(t, false, nil)
1528 user := dbgen.User(t, db, database.User{})
1529 version := dbgen.TemplateVersion(t, db, database.TemplateVersion{
1530 CreatedBy: user.ID,
1531 OrganizationID: pd.OrganizationID,
1532 JobID: uuid.New(),
1533 })
1534 job, err := db.InsertProvisionerJob(ctx, database.InsertProvisionerJobParams{
1535 ID: version.JobID,
1536 Provisioner: database.ProvisionerTypeEcho,
1537 StorageMethod: database.ProvisionerStorageMethodFile,
1538 Type: database.ProvisionerJobTypeTemplateVersionImport,
1539 OrganizationID: pd.OrganizationID,
1540 Input: must(json.Marshal(provisionerdserver.TemplateVersionDryRunJob{
1541 TemplateVersionID: version.ID,
1542 })),
1543 Tags: pd.Tags,
1544 })
1545 require.NoError(t, err)
1546 _, err = db.AcquireProvisionerJob(ctx, database.AcquireProvisionerJobParams{
1547 OrganizationID: pd.OrganizationID,
1548 WorkerID: uuid.NullUUID{
1549 UUID: uuid.New(),
1550 Valid: true,
1551 },
1552 Types: []database.ProvisionerType{database.ProvisionerTypeEcho},
1553 StartedAt: sql.NullTime{
1554 Time: dbtime.Now(),
1555 Valid: true,
1556 },
1557 ProvisionerTags: must(json.Marshal(job.Tags)),
1558 })
1559 require.NoError(t, err)
1560 _, err = srv.CompleteJob(ctx, &proto.CompletedJob{
1561 JobId: job.ID.String(),
1562 })
1563 require.ErrorContains(t, err, "you don't own this job")
1564 })
1565

Callers

nothing calls this directly

Calls 15

UserFunction · 0.92
TemplateVersionFunction · 0.92
NowFunction · 0.92
OrganizationFunction · 0.92
TemplateFunction · 0.92
FileFunction · 0.92
WorkspaceFunction · 0.92
ProvisionerJobFunction · 0.92
WorkspaceBuildFunction · 0.92
WorkspaceEventChannelFunction · 0.92
HandleWorkspaceEventFunction · 0.92
NewMockFunction · 0.92

Tested by

no test coverage detected