* refact(e2e): Move cleanup steps into each test The migration test needed to create some resources, but doesn't care about cleaning up because the test would take care of spinning down the docker container that it's using. To maintain flexibility going forward, we'll establish that tests are responsible for cleaning up (rather than the methods they use) * refact(e2e): Use new env var for skip check Currently, the e2e tests use the E2E_PASSWORD_AUTH_METHOD_ID environment variable to determine if the test should be skipped. However, the new migration test does not require a pre-existing boundary cluster and would not have this environment variable. As a result, we needed an alternative way to check if an e2e test should be skipped when running tests in ci. * refact(e2e): Create more common boundary methods * fix(e2e): Set to string value Co-authored-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
84 lines
2.8 KiB
Go
84 lines
2.8 KiB
Go
package boundary
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"strconv"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/boundary/api"
|
|
"github.com/hashicorp/boundary/api/targets"
|
|
"github.com/hashicorp/boundary/testing/internal/e2e"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
// CreateNewTargetApi uses the Go api to create a new target in boundary
|
|
// Returns the id of the new target.
|
|
func CreateNewTargetApi(t testing.TB, ctx context.Context, client *api.Client, projectId string, defaultPort string) string {
|
|
tClient := targets.NewClient(client)
|
|
targetPort, err := strconv.ParseInt(defaultPort, 10, 32)
|
|
require.NoError(t, err)
|
|
newTargetResult, err := tClient.Create(ctx, "tcp", projectId,
|
|
targets.WithName("e2e Target"),
|
|
targets.WithTcpTargetDefaultPort(uint32(targetPort)),
|
|
)
|
|
require.NoError(t, err)
|
|
newTargetId := newTargetResult.Item.Id
|
|
t.Logf("Created Target: %s", newTargetId)
|
|
|
|
return newTargetId
|
|
}
|
|
|
|
// AddHostSourceToTargetApi uses the Go api to add a host source (host set or host) to a target
|
|
func AddHostSourceToTargetApi(t testing.TB, ctx context.Context, client *api.Client, targetId string, hostSourceId string) {
|
|
tClient := targets.NewClient(client)
|
|
_, err := tClient.AddHostSources(ctx, targetId, 0,
|
|
[]string{hostSourceId},
|
|
targets.WithAutomaticVersioning(true),
|
|
)
|
|
require.NoError(t, err)
|
|
}
|
|
|
|
// CreateNewTargetCli uses the cli to create a new target in boundary
|
|
// Returns the id of the new target.
|
|
func CreateNewTargetCli(t testing.TB, ctx context.Context, projectId string, defaultPort string) string {
|
|
output := e2e.RunCommand(ctx, "boundary",
|
|
e2e.WithArgs(
|
|
"targets", "create", "tcp",
|
|
"-scope-id", projectId,
|
|
"-default-port", defaultPort,
|
|
"-name", "e2e Target",
|
|
"-format", "json",
|
|
),
|
|
)
|
|
require.NoError(t, output.Err, string(output.Stderr))
|
|
var newTargetResult targets.TargetCreateResult
|
|
err := json.Unmarshal(output.Stdout, &newTargetResult)
|
|
require.NoError(t, err)
|
|
newTargetId := newTargetResult.Item.Id
|
|
t.Logf("Created Target: %s", newTargetId)
|
|
|
|
return newTargetId
|
|
}
|
|
|
|
// AddHostSourceToTargetCli uses the cli to add a host source (host set or host) to a target
|
|
func AddHostSourceToTargetCli(t testing.TB, ctx context.Context, targetId string, hostSourceId string) {
|
|
output := e2e.RunCommand(ctx, "boundary",
|
|
e2e.WithArgs("targets", "add-host-sources", "-id", targetId, "-host-source", hostSourceId),
|
|
)
|
|
require.NoError(t, output.Err, string(output.Stderr))
|
|
}
|
|
|
|
// AddCredentialSourceToTargetCli uses the cli to add a credential source (credential library or
|
|
// credential) to a target
|
|
func AddCredentialSourceToTargetCli(t testing.TB, ctx context.Context, targetId string, credentialSourceId string) {
|
|
output := e2e.RunCommand(ctx, "boundary",
|
|
e2e.WithArgs(
|
|
"targets", "add-credential-sources",
|
|
"-id", targetId,
|
|
"-brokered-credential-source", credentialSourceId,
|
|
),
|
|
)
|
|
require.NoError(t, output.Err, string(output.Stderr))
|
|
}
|