mirror of https://github.com/hashicorp/boundary
test(e2e): Add helper method for boundary connect (#3379)
parent
23d500917b
commit
1f16293f65
@ -0,0 +1,45 @@
|
||||
// Copyright (c) HashiCorp, Inc.
|
||||
// SPDX-License-Identifier: MPL-2.0
|
||||
|
||||
package boundary
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"os/exec"
|
||||
"testing"
|
||||
|
||||
"github.com/creack/pty"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
// ConnectCli uses the boundary CLI to establish connection to the target.
|
||||
// It then parses proxy details from the command output and returns them.
|
||||
// The connection must be closed separately via the `boundary sessions cancel` command
|
||||
func ConnectCli(t testing.TB, ctx context.Context, targetId string) ConnectCliOutput {
|
||||
cmd := exec.CommandContext(ctx,
|
||||
"boundary", "connect",
|
||||
"-target-id", targetId,
|
||||
"-format", "json",
|
||||
)
|
||||
fileConnect, err := pty.Start(cmd)
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() {
|
||||
err := fileConnect.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
scanner := bufio.NewScanner(fileConnect)
|
||||
var connectCliOutputJson string
|
||||
if scanner.Scan() {
|
||||
connectCliOutputJson = scanner.Text()
|
||||
}
|
||||
require.NoError(t, scanner.Err())
|
||||
|
||||
var connectCliOutput ConnectCliOutput
|
||||
err = json.Unmarshal([]byte(connectCliOutputJson), &connectCliOutput)
|
||||
require.NoError(t, err)
|
||||
|
||||
return connectCliOutput
|
||||
}
|
||||
Loading…
Reference in new issue