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

Function TestTemplateVersionDryRun

coderd/templateversions_test.go:1455–1718  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1453}
1454
1455func TestTemplateVersionDryRun(t *testing.T) {
1456 t.Parallel()
1457
1458 t.Run("OK", func(t *testing.T) {
1459 t.Parallel()
1460
1461 resource := &proto.Resource{
1462 Name: "cool-resource",
1463 Type: "cool_resource_type",
1464 }
1465
1466 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
1467 user := coderdtest.CreateFirstUser(t, client)
1468 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
1469 Parse: echo.ParseComplete,
1470 ProvisionGraph: []*proto.Response{
1471 {
1472 Type: &proto.Response_Log{
1473 Log: &proto.Log{},
1474 },
1475 },
1476 {
1477 Type: &proto.Response_Graph{
1478 Graph: &proto.GraphComplete{
1479 Resources: []*proto.Resource{resource},
1480 },
1481 },
1482 },
1483 },
1484 })
1485 _ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
1486
1487 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
1488 defer cancel()
1489
1490 // Create template version dry-run
1491 job, err := client.CreateTemplateVersionDryRun(ctx, version.ID, codersdk.CreateTemplateVersionDryRunRequest{})
1492 require.NoError(t, err)
1493
1494 // Fetch template version dry-run
1495 newJob, err := client.TemplateVersionDryRun(ctx, version.ID, job.ID)
1496 require.NoError(t, err)
1497 require.Equal(t, job.ID, newJob.ID)
1498
1499 // Check matched provisioners
1500 matched, err := client.TemplateVersionDryRunMatchedProvisioners(ctx, version.ID, job.ID)
1501 require.NoError(t, err)
1502 require.Equal(t, 1, matched.Count)
1503 require.Equal(t, 1, matched.Available)
1504 require.NotZero(t, matched.MostRecentlySeen.Time)
1505
1506 // Stream logs
1507 logs, closer, err := client.TemplateVersionDryRunLogsAfter(ctx, version.ID, job.ID, 0)
1508 require.NoError(t, err)
1509 defer closer.Close()
1510
1511 logsDone := make(chan struct{})
1512 go func() {

Callers

nothing calls this directly

Calls 15

StatusCodeMethod · 0.95
NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
NewWithProvisionerCloserFunction · 0.92
NewDBWithSQLDBFunction · 0.92
CreateAnotherUserFunction · 0.92
RoleTemplateAdminFunction · 0.92
ContextFunction · 0.92
TemplateVersionDryRunMethod · 0.80

Tested by

no test coverage detected