Skip to content

Commit b42bfa4

Browse files
committed
fix: Deduplicate code, sync terraform.Serve exit
1 parent 6d5e562 commit b42bfa4

File tree

2 files changed

+7
-29
lines changed

2 files changed

+7
-29
lines changed

provisioner/terraform/parse_test.go

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,45 +3,20 @@
33
package terraform_test
44

55
import (
6-
"context"
76
"encoding/json"
87
"os"
98
"path/filepath"
109
"testing"
1110

12-
"github.com/stretchr/testify/assert"
1311
"github.com/stretchr/testify/require"
1412

15-
"cdr.dev/slog"
16-
"cdr.dev/slog/sloggers/slogtest"
17-
18-
"github.com/coder/coder/provisioner/terraform"
19-
"github.com/coder/coder/provisionersdk"
2013
"github.com/coder/coder/provisionersdk/proto"
2114
)
2215

2316
func TestParse(t *testing.T) {
2417
t.Parallel()
2518

26-
// Create an in-memory provisioner to communicate with.
27-
client, server := provisionersdk.TransportPipe()
28-
ctx, cancelFunc := context.WithCancel(context.Background())
29-
t.Cleanup(func() {
30-
_ = client.Close()
31-
_ = server.Close()
32-
cancelFunc()
33-
})
34-
go func() {
35-
err := terraform.Serve(ctx, &terraform.ServeOptions{
36-
ServeOptions: &provisionersdk.ServeOptions{
37-
Listener: server,
38-
},
39-
CachePath: t.TempDir(),
40-
Logger: slogtest.Make(t, nil).Leveled(slog.LevelDebug),
41-
})
42-
assert.NoError(t, err)
43-
}()
44-
api := proto.NewDRPCProvisionerClient(provisionersdk.Conn(client))
19+
ctx, api := setupProvisioner(t)
4520

4621
testCases := []struct {
4722
Name string

provisioner/terraform/provision_test.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,25 @@ import (
2323
)
2424

2525
func setupProvisioner(t *testing.T) (context.Context, proto.DRPCProvisionerClient) {
26+
cachePath := t.TempDir()
2627
client, server := provisionersdk.TransportPipe()
2728
ctx, cancelFunc := context.WithCancel(context.Background())
29+
serverErr := make(chan error, 1)
2830
t.Cleanup(func() {
2931
_ = client.Close()
3032
_ = server.Close()
3133
cancelFunc()
34+
err := <-serverErr
35+
assert.NoError(t, err)
3236
})
3337
go func() {
34-
err := terraform.Serve(ctx, &terraform.ServeOptions{
38+
serverErr <- terraform.Serve(ctx, &terraform.ServeOptions{
3539
ServeOptions: &provisionersdk.ServeOptions{
3640
Listener: server,
3741
},
38-
CachePath: t.TempDir(),
42+
CachePath: cachePath,
3943
Logger: slogtest.Make(t, nil).Leveled(slog.LevelDebug),
4044
})
41-
assert.NoError(t, err)
4245
}()
4346
api := proto.NewDRPCProvisionerClient(provisionersdk.Conn(client))
4447
return ctx, api

0 commit comments

Comments
 (0)