File tree 2 files changed +7
-29
lines changed
2 files changed +7
-29
lines changed Original file line number Diff line number Diff line change 3
3
package terraform_test
4
4
5
5
import (
6
- "context"
7
6
"encoding/json"
8
7
"os"
9
8
"path/filepath"
10
9
"testing"
11
10
12
- "github.com/stretchr/testify/assert"
13
11
"github.com/stretchr/testify/require"
14
12
15
- "cdr.dev/slog"
16
- "cdr.dev/slog/sloggers/slogtest"
17
-
18
- "github.com/coder/coder/provisioner/terraform"
19
- "github.com/coder/coder/provisionersdk"
20
13
"github.com/coder/coder/provisionersdk/proto"
21
14
)
22
15
23
16
func TestParse (t * testing.T ) {
24
17
t .Parallel ()
25
18
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 )
45
20
46
21
testCases := []struct {
47
22
Name string
Original file line number Diff line number Diff line change @@ -23,22 +23,25 @@ import (
23
23
)
24
24
25
25
func setupProvisioner (t * testing.T ) (context.Context , proto.DRPCProvisionerClient ) {
26
+ cachePath := t .TempDir ()
26
27
client , server := provisionersdk .TransportPipe ()
27
28
ctx , cancelFunc := context .WithCancel (context .Background ())
29
+ serverErr := make (chan error , 1 )
28
30
t .Cleanup (func () {
29
31
_ = client .Close ()
30
32
_ = server .Close ()
31
33
cancelFunc ()
34
+ err := <- serverErr
35
+ assert .NoError (t , err )
32
36
})
33
37
go func () {
34
- err := terraform .Serve (ctx , & terraform.ServeOptions {
38
+ serverErr <- terraform .Serve (ctx , & terraform.ServeOptions {
35
39
ServeOptions : & provisionersdk.ServeOptions {
36
40
Listener : server ,
37
41
},
38
- CachePath : t . TempDir () ,
42
+ CachePath : cachePath ,
39
43
Logger : slogtest .Make (t , nil ).Leveled (slog .LevelDebug ),
40
44
})
41
- assert .NoError (t , err )
42
45
}()
43
46
api := proto .NewDRPCProvisionerClient (provisionersdk .Conn (client ))
44
47
return ctx , api
You can’t perform that action at this time.
0 commit comments