Skip to content

Commit 82d8c93

Browse files
committed
address PR comments
1 parent 5b3c33a commit 82d8c93

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

enterprise/coderd/coderdenttest/coderdenttest.go

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"crypto/tls"
88
"io"
99
"net/http"
10+
"os/exec"
1011
"strings"
1112
"testing"
1213
"time"
@@ -326,7 +327,7 @@ func NewExternalProvisionerDaemonTerraform(t testing.TB, client *codersdk.Client
326327
}
327328

328329
// nolint // This function is a helper for tests and should not be linted.
329-
func newExternalProvisionerDaemon(t testing.TB, client *codersdk.Client, org uuid.UUID, tags map[string]string, ty codersdk.ProvisionerType) io.Closer {
330+
func newExternalProvisionerDaemon(t testing.TB, client *codersdk.Client, org uuid.UUID, tags map[string]string, provisionerType codersdk.ProvisionerType) io.Closer {
330331
t.Helper()
331332

332333
entitlements, err := client.Entitlements(context.Background())
@@ -353,47 +354,52 @@ func newExternalProvisionerDaemon(t testing.TB, client *codersdk.Client, org uui
353354
<-serveDone
354355
})
355356

356-
var serveFunc func()
357-
switch ty {
357+
switch provisionerType {
358358
case codersdk.ProvisionerTypeTerraform:
359-
serveFunc = func() {
359+
// Ensure the Terraform binary is present in the path.
360+
// If not, we fail this test rather than downloading it.
361+
terraformPath, err := exec.LookPath("terraform")
362+
require.NoError(t, err, "terraform binary not found in PATH")
363+
t.Logf("using Terraform binary at %s", terraformPath)
364+
365+
go func() {
360366
defer close(serveDone)
361367
assert.NoError(t, terraform.Serve(ctx, &terraform.ServeOptions{
368+
BinaryPath: terraformPath,
369+
CachePath: t.TempDir(),
362370
ServeOptions: &provisionersdk.ServeOptions{
363371
Listener: provisionerSrv,
364372
WorkDirectory: t.TempDir(),
365373
},
366374
}))
367-
}
375+
}()
368376
case codersdk.ProvisionerTypeEcho:
369-
serveFunc = func() {
377+
go func() {
370378
defer close(serveDone)
371379
assert.NoError(t, echo.Serve(ctx, &provisionersdk.ServeOptions{
372380
Listener: provisionerSrv,
373381
WorkDirectory: t.TempDir(),
374382
}))
375-
}
383+
}()
376384
default:
377-
t.Fatalf("unsupported provisioner type: %s", ty)
385+
t.Fatalf("unsupported provisioner type: %s", provisionerType)
378386
return nil
379387
}
380388

381-
go serveFunc()
382-
383389
daemon := provisionerd.New(func(ctx context.Context) (provisionerdproto.DRPCProvisionerDaemonClient, error) {
384390
return client.ServeProvisionerDaemon(ctx, codersdk.ServeProvisionerDaemonRequest{
385391
ID: uuid.New(),
386392
Name: t.Name(),
387393
Organization: org,
388-
Provisioners: []codersdk.ProvisionerType{ty},
394+
Provisioners: []codersdk.ProvisionerType{provisionerType},
389395
Tags: tags,
390396
})
391397
}, &provisionerd.Options{
392398
Logger: testutil.Logger(t).Named("provisionerd").Leveled(slog.LevelDebug),
393399
UpdateInterval: 250 * time.Millisecond,
394400
ForceCancelInterval: 5 * time.Second,
395401
Connector: provisionerd.LocalProvisioners{
396-
string(ty): sdkproto.NewDRPCProvisionerClient(provisionerClient),
402+
string(provisionerType): sdkproto.NewDRPCProvisionerClient(provisionerClient),
397403
},
398404
})
399405
closer := coderdtest.NewProvisionerDaemonCloser(daemon)

0 commit comments

Comments
 (0)