refactor: update errors to include error codes
This commit is contained in:
1 parent
6ce3e27677
commit
4656760fb8
4 files changed
+199
-152
No files matched your search
+116
-95
@@ -19,22 +19,22 @@ import (
|
||||
|
||||
func TestPluginOnCreateCatalogErr(t *testing.T) {
|
||||
cases := []struct {
|
||||
name string
|
||||
req *pb.OnCreateCatalogRequest
|
||||
opts []awsCatalogPersistedStateOption
|
||||
expectedErr string
|
||||
name string
|
||||
req *pb.OnCreateCatalogRequest
|
||||
opts []awsCatalogPersistedStateOption
|
||||
expectedErrContains string
|
||||
}{
|
||||
{
|
||||
name: "nil catalog",
|
||||
req: &pb.OnCreateCatalogRequest{},
|
||||
expectedErr: "catalog is nil",
|
||||
name: "nil catalog",
|
||||
req: &pb.OnCreateCatalogRequest{},
|
||||
expectedErrContains: "catalog is nil",
|
||||
},
|
||||
{
|
||||
name: "nil secrets",
|
||||
req: &pb.OnCreateCatalogRequest{
|
||||
Catalog: &hostcatalogs.HostCatalog{},
|
||||
},
|
||||
expectedErr: "secrets are required",
|
||||
expectedErrContains: "secrets are required",
|
||||
},
|
||||
{
|
||||
name: "nil attributes",
|
||||
@@ -43,7 +43,7 @@ func TestPluginOnCreateCatalogErr(t *testing.T) {
|
||||
Secrets: new(structpb.Struct),
|
||||
},
|
||||
},
|
||||
expectedErr: "attributes are required",
|
||||
expectedErrContains: "attributes are required",
|
||||
},
|
||||
{
|
||||
name: "error reading attributes",
|
||||
@@ -53,7 +53,7 @@ func TestPluginOnCreateCatalogErr(t *testing.T) {
|
||||
Attributes: new(structpb.Struct),
|
||||
},
|
||||
},
|
||||
expectedErr: "missing required value \"region\"",
|
||||
expectedErrContains: "missing required value \"region\"",
|
||||
},
|
||||
{
|
||||
name: "error reading secrets",
|
||||
@@ -65,7 +65,7 @@ func TestPluginOnCreateCatalogErr(t *testing.T) {
|
||||
}),
|
||||
},
|
||||
},
|
||||
expectedErr: "missing required value \"access_key_id\"",
|
||||
expectedErrContains: "missing required value \"access_key_id\"",
|
||||
},
|
||||
{
|
||||
name: "invalid region",
|
||||
@@ -80,7 +80,7 @@ func TestPluginOnCreateCatalogErr(t *testing.T) {
|
||||
}),
|
||||
},
|
||||
},
|
||||
expectedErr: "not a valid region: foobar",
|
||||
expectedErrContains: "not a valid region: foobar",
|
||||
},
|
||||
{
|
||||
name: "persisted state setup error",
|
||||
@@ -100,7 +100,7 @@ func TestPluginOnCreateCatalogErr(t *testing.T) {
|
||||
return errors.New(testOptionErr)
|
||||
},
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error setting up persisted state: %s", testOptionErr),
|
||||
expectedErrContains: fmt.Sprintf("error setting up persisted state: %s", testOptionErr),
|
||||
},
|
||||
{
|
||||
name: "rotation error",
|
||||
@@ -124,7 +124,7 @@ func TestPluginOnCreateCatalogErr(t *testing.T) {
|
||||
),
|
||||
}),
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error during credential rotation: error rotating credentials: error calling CreateAccessKey: error calling aws.GetUser: %s", testGetUserErr),
|
||||
expectedErrContains: fmt.Sprintf("error during credential rotation: error rotating credentials: error calling CreateAccessKey: error calling aws.GetUser: %s", testGetUserErr),
|
||||
},
|
||||
{
|
||||
name: "validation error",
|
||||
@@ -149,7 +149,7 @@ func TestPluginOnCreateCatalogErr(t *testing.T) {
|
||||
),
|
||||
}),
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error during credential validation: error validating credentials: %s", testGetCallerIdentityErr),
|
||||
expectedErrContains: fmt.Sprintf("error during credential validation: error validating credentials: %s", testGetCallerIdentityErr),
|
||||
},
|
||||
}
|
||||
|
||||
@@ -161,22 +161,22 @@ func TestPluginOnCreateCatalogErr(t *testing.T) {
|
||||
testStateOpts: tc.opts,
|
||||
}
|
||||
_, err := p.OnCreateCatalog(context.Background(), tc.req)
|
||||
require.EqualError(err, tc.expectedErr)
|
||||
require.Contains(err.Error(), tc.expectedErrContains)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestPluginOnUpdateCatalogErr(t *testing.T) {
|
||||
cases := []struct {
|
||||
name string
|
||||
req *pb.OnUpdateCatalogRequest
|
||||
opts []awsCatalogPersistedStateOption
|
||||
expectedErr string
|
||||
name string
|
||||
req *pb.OnUpdateCatalogRequest
|
||||
opts []awsCatalogPersistedStateOption
|
||||
expectedErrContains string
|
||||
}{
|
||||
{
|
||||
name: "nil new catalog",
|
||||
req: &pb.OnUpdateCatalogRequest{},
|
||||
expectedErr: "new catalog is nil",
|
||||
name: "nil new catalog",
|
||||
req: &pb.OnUpdateCatalogRequest{},
|
||||
expectedErrContains: "new catalog is nil",
|
||||
},
|
||||
{
|
||||
name: "nil new attributes",
|
||||
@@ -185,7 +185,7 @@ func TestPluginOnUpdateCatalogErr(t *testing.T) {
|
||||
Secrets: new(structpb.Struct),
|
||||
},
|
||||
},
|
||||
expectedErr: "new catalog missing attributes",
|
||||
expectedErrContains: "new catalog missing attributes",
|
||||
},
|
||||
{
|
||||
name: "error reading attributes",
|
||||
@@ -195,7 +195,7 @@ func TestPluginOnUpdateCatalogErr(t *testing.T) {
|
||||
Attributes: new(structpb.Struct),
|
||||
},
|
||||
},
|
||||
expectedErr: "missing required value \"region\"",
|
||||
expectedErrContains: "missing required value \"region\"",
|
||||
},
|
||||
{
|
||||
name: "invalid region",
|
||||
@@ -206,7 +206,7 @@ func TestPluginOnUpdateCatalogErr(t *testing.T) {
|
||||
}),
|
||||
},
|
||||
},
|
||||
expectedErr: "not a valid region: foobar",
|
||||
expectedErrContains: "not a valid region: foobar",
|
||||
},
|
||||
{
|
||||
name: "persisted state setup error",
|
||||
@@ -229,7 +229,7 @@ func TestPluginOnUpdateCatalogErr(t *testing.T) {
|
||||
return errors.New(testOptionErr)
|
||||
},
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error loading persisted state: %s", testOptionErr),
|
||||
expectedErrContains: fmt.Sprintf("error loading persisted state: %s", testOptionErr),
|
||||
},
|
||||
{
|
||||
name: "cannot disable rotation for already rotated credentials",
|
||||
@@ -248,7 +248,7 @@ func TestPluginOnUpdateCatalogErr(t *testing.T) {
|
||||
}),
|
||||
},
|
||||
},
|
||||
expectedErr: "cannot disable rotation for already-rotated credentials",
|
||||
expectedErrContains: "cannot disable rotation for already-rotated credentials",
|
||||
},
|
||||
{
|
||||
name: "error reading secrets",
|
||||
@@ -267,7 +267,7 @@ func TestPluginOnUpdateCatalogErr(t *testing.T) {
|
||||
}),
|
||||
},
|
||||
},
|
||||
expectedErr: "missing required value \"access_key_id\"",
|
||||
expectedErrContains: "missing required value \"access_key_id\"",
|
||||
},
|
||||
{
|
||||
name: "updating secrets, replace error",
|
||||
@@ -299,7 +299,7 @@ func TestPluginOnUpdateCatalogErr(t *testing.T) {
|
||||
),
|
||||
}),
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error attempting to replace credentials: error deleting old access key: %s", testDeleteAccessKeyErr),
|
||||
expectedErrContains: fmt.Sprintf("error attempting to replace credentials: error deleting old access key: %s", testDeleteAccessKeyErr),
|
||||
},
|
||||
{
|
||||
name: "rotation error",
|
||||
@@ -325,7 +325,7 @@ func TestPluginOnUpdateCatalogErr(t *testing.T) {
|
||||
),
|
||||
}),
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error during credential rotation: error rotating credentials: error calling CreateAccessKey: error calling aws.GetUser: %s", testGetUserErr),
|
||||
expectedErrContains: fmt.Sprintf("error during credential rotation: error rotating credentials: error calling CreateAccessKey: error calling aws.GetUser: %s", testGetUserErr),
|
||||
},
|
||||
}
|
||||
|
||||
@@ -337,17 +337,17 @@ func TestPluginOnUpdateCatalogErr(t *testing.T) {
|
||||
testStateOpts: tc.opts,
|
||||
}
|
||||
_, err := p.OnUpdateCatalog(context.Background(), tc.req)
|
||||
require.EqualError(err, tc.expectedErr)
|
||||
require.Contains(err.Error(), tc.expectedErrContains)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestPluginOnDeleteCatalogErr(t *testing.T) {
|
||||
cases := []struct {
|
||||
name string
|
||||
req *pb.OnDeleteCatalogRequest
|
||||
opts []awsCatalogPersistedStateOption
|
||||
expectedErr string
|
||||
name string
|
||||
req *pb.OnDeleteCatalogRequest
|
||||
opts []awsCatalogPersistedStateOption
|
||||
expectedErrContains string
|
||||
}{
|
||||
{
|
||||
name: "persisted state setup error",
|
||||
@@ -370,7 +370,7 @@ func TestPluginOnDeleteCatalogErr(t *testing.T) {
|
||||
return errors.New(testOptionErr)
|
||||
},
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error loading persisted state: %s", testOptionErr),
|
||||
expectedErrContains: fmt.Sprintf("error loading persisted state: %s", testOptionErr),
|
||||
},
|
||||
{
|
||||
name: "delete error",
|
||||
@@ -397,7 +397,7 @@ func TestPluginOnDeleteCatalogErr(t *testing.T) {
|
||||
),
|
||||
}),
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error removing rotated credentials during catalog deletion: error deleting old access key: %s", testDeleteAccessKeyErr),
|
||||
expectedErrContains: fmt.Sprintf("error removing rotated credentials during catalog deletion: error deleting old access key: %s", testDeleteAccessKeyErr),
|
||||
},
|
||||
}
|
||||
|
||||
@@ -409,22 +409,23 @@ func TestPluginOnDeleteCatalogErr(t *testing.T) {
|
||||
testStateOpts: tc.opts,
|
||||
}
|
||||
_, err := p.OnDeleteCatalog(context.Background(), tc.req)
|
||||
require.EqualError(err, tc.expectedErr)
|
||||
require.Contains(err.Error(), tc.expectedErrContains)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestPluginOnCreateSetErr(t *testing.T) {
|
||||
cases := []struct {
|
||||
name string
|
||||
req *pb.OnCreateSetRequest
|
||||
opts []awsCatalogPersistedStateOption
|
||||
expectedErr string
|
||||
name string
|
||||
req *pb.OnCreateSetRequest
|
||||
opts []awsCatalogPersistedStateOption
|
||||
expectedErrContains string
|
||||
expectedErrContains2 string
|
||||
}{
|
||||
{
|
||||
name: "nil catalog",
|
||||
req: &pb.OnCreateSetRequest{},
|
||||
expectedErr: "catalog is nil",
|
||||
name: "nil catalog",
|
||||
req: &pb.OnCreateSetRequest{},
|
||||
expectedErrContains: "catalog is nil",
|
||||
},
|
||||
{
|
||||
name: "nil catalog attributes",
|
||||
@@ -433,7 +434,7 @@ func TestPluginOnCreateSetErr(t *testing.T) {
|
||||
Secrets: new(structpb.Struct),
|
||||
},
|
||||
},
|
||||
expectedErr: "catalog missing attributes",
|
||||
expectedErrContains: "catalog missing attributes",
|
||||
},
|
||||
{
|
||||
name: "error reading catalog attributes",
|
||||
@@ -443,7 +444,8 @@ func TestPluginOnCreateSetErr(t *testing.T) {
|
||||
Attributes: new(structpb.Struct),
|
||||
},
|
||||
},
|
||||
expectedErr: "integrity error in host catalog attributes: missing required value \"region\"",
|
||||
expectedErrContains: "integrity error in host catalog attributes: ",
|
||||
expectedErrContains2: "missing required value \"region\"",
|
||||
},
|
||||
{
|
||||
name: "invalid region",
|
||||
@@ -454,7 +456,8 @@ func TestPluginOnCreateSetErr(t *testing.T) {
|
||||
}),
|
||||
},
|
||||
},
|
||||
expectedErr: "integrity error in host catalog attributes: not a valid region: foobar",
|
||||
expectedErrContains: "integrity error in host catalog attributes: ",
|
||||
expectedErrContains2: "not a valid region: foobar",
|
||||
},
|
||||
{
|
||||
name: "persisted state setup error",
|
||||
@@ -477,7 +480,7 @@ func TestPluginOnCreateSetErr(t *testing.T) {
|
||||
return errors.New(testOptionErr)
|
||||
},
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error loading persisted state: %s", testOptionErr),
|
||||
expectedErrContains: fmt.Sprintf("error loading persisted state: %s", testOptionErr),
|
||||
},
|
||||
{
|
||||
name: "nil set",
|
||||
@@ -495,7 +498,7 @@ func TestPluginOnCreateSetErr(t *testing.T) {
|
||||
}),
|
||||
},
|
||||
},
|
||||
expectedErr: "set is nil",
|
||||
expectedErrContains: "set is nil",
|
||||
},
|
||||
{
|
||||
name: "nil attributes in set",
|
||||
@@ -514,7 +517,7 @@ func TestPluginOnCreateSetErr(t *testing.T) {
|
||||
},
|
||||
Set: &hostsets.HostSet{},
|
||||
},
|
||||
expectedErr: "set missing attributes",
|
||||
expectedErrContains: "set missing attributes",
|
||||
},
|
||||
{
|
||||
name: "set attribute load error",
|
||||
@@ -538,7 +541,8 @@ func TestPluginOnCreateSetErr(t *testing.T) {
|
||||
}),
|
||||
},
|
||||
},
|
||||
expectedErr: "error parsing set attributes: unknown set attribute fields provided: bar, foo",
|
||||
expectedErrContains: "error parsing set attributes: ",
|
||||
expectedErrContains2: "unknown set attribute fields provided: bar, foo",
|
||||
},
|
||||
{
|
||||
name: "client load error",
|
||||
@@ -566,7 +570,7 @@ func TestPluginOnCreateSetErr(t *testing.T) {
|
||||
awsutil.MockOptionErr(errors.New(testOptionErr)),
|
||||
}),
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error getting EC2 client: error getting AWS session: error reading options in NewCredentialsConfig: %s", testOptionErr),
|
||||
expectedErrContains: fmt.Sprintf("error getting EC2 client: error getting AWS session: error reading options in NewCredentialsConfig: %s", testOptionErr),
|
||||
},
|
||||
{
|
||||
name: "DescribeInstances error",
|
||||
@@ -595,7 +599,7 @@ func TestPluginOnCreateSetErr(t *testing.T) {
|
||||
testMockEC2WithDescribeInstancesError(errors.New(testDescribeInstancesError)),
|
||||
)),
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error performing dry run of DescribeInstances: %s", testDescribeInstancesError),
|
||||
expectedErrContains: fmt.Sprintf("error performing dry run of DescribeInstances: %s", testDescribeInstancesError),
|
||||
},
|
||||
{
|
||||
name: "DescribeInstances non-error array filter",
|
||||
@@ -623,7 +627,7 @@ func TestPluginOnCreateSetErr(t *testing.T) {
|
||||
nil,
|
||||
)),
|
||||
},
|
||||
expectedErr: "query error: DescribeInstances DryRun should have returned error, but none was found",
|
||||
expectedErrContains: "query error: DescribeInstances DryRun should have returned error, but none was found",
|
||||
},
|
||||
{
|
||||
name: "DescribeInstances non-error string filter",
|
||||
@@ -651,7 +655,7 @@ func TestPluginOnCreateSetErr(t *testing.T) {
|
||||
nil,
|
||||
)),
|
||||
},
|
||||
expectedErr: "query error: DescribeInstances DryRun should have returned error, but none was found",
|
||||
expectedErrContains: "query error: DescribeInstances DryRun should have returned error, but none was found",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -663,22 +667,26 @@ func TestPluginOnCreateSetErr(t *testing.T) {
|
||||
testStateOpts: tc.opts,
|
||||
}
|
||||
_, err := p.OnCreateSet(context.Background(), tc.req)
|
||||
require.EqualError(err, tc.expectedErr)
|
||||
require.Contains(err.Error(), tc.expectedErrContains)
|
||||
if tc.expectedErrContains2 != "" {
|
||||
require.Contains(err.Error(), tc.expectedErrContains2)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestPluginOnUpdateSetErr(t *testing.T) {
|
||||
cases := []struct {
|
||||
name string
|
||||
req *pb.OnUpdateSetRequest
|
||||
opts []awsCatalogPersistedStateOption
|
||||
expectedErr string
|
||||
name string
|
||||
req *pb.OnUpdateSetRequest
|
||||
opts []awsCatalogPersistedStateOption
|
||||
expectedErrContains string
|
||||
expectedErrContains2 string
|
||||
}{
|
||||
{
|
||||
name: "nil catalog",
|
||||
req: &pb.OnUpdateSetRequest{},
|
||||
expectedErr: "catalog is nil",
|
||||
name: "nil catalog",
|
||||
req: &pb.OnUpdateSetRequest{},
|
||||
expectedErrContains: "catalog is nil",
|
||||
},
|
||||
{
|
||||
name: "nil catalog attributes",
|
||||
@@ -687,7 +695,7 @@ func TestPluginOnUpdateSetErr(t *testing.T) {
|
||||
Secrets: new(structpb.Struct),
|
||||
},
|
||||
},
|
||||
expectedErr: "catalog missing attributes",
|
||||
expectedErrContains: "catalog missing attributes",
|
||||
},
|
||||
{
|
||||
name: "catalog attribute load error",
|
||||
@@ -697,7 +705,8 @@ func TestPluginOnUpdateSetErr(t *testing.T) {
|
||||
Attributes: new(structpb.Struct),
|
||||
},
|
||||
},
|
||||
expectedErr: "integrity error in host catalog attributes: missing required value \"region\"",
|
||||
expectedErrContains: "integrity error in host catalog attributes: ",
|
||||
expectedErrContains2: "missing required value \"region\"",
|
||||
},
|
||||
{
|
||||
name: "invalid region",
|
||||
@@ -709,7 +718,8 @@ func TestPluginOnUpdateSetErr(t *testing.T) {
|
||||
}),
|
||||
},
|
||||
},
|
||||
expectedErr: "integrity error in host catalog attributes: not a valid region: foobar",
|
||||
expectedErrContains: "integrity error in host catalog attributes: ",
|
||||
expectedErrContains2: "not a valid region: foobar",
|
||||
},
|
||||
{
|
||||
name: "persisted state setup error",
|
||||
@@ -732,7 +742,7 @@ func TestPluginOnUpdateSetErr(t *testing.T) {
|
||||
return errors.New(testOptionErr)
|
||||
},
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error loading persisted state: %s", testOptionErr),
|
||||
expectedErrContains: fmt.Sprintf("error loading persisted state: %s", testOptionErr),
|
||||
},
|
||||
{
|
||||
name: "nil set",
|
||||
@@ -750,7 +760,7 @@ func TestPluginOnUpdateSetErr(t *testing.T) {
|
||||
}),
|
||||
},
|
||||
},
|
||||
expectedErr: "new set is nil",
|
||||
expectedErrContains: "new set is nil",
|
||||
},
|
||||
{
|
||||
name: "nil attributes in set",
|
||||
@@ -769,7 +779,7 @@ func TestPluginOnUpdateSetErr(t *testing.T) {
|
||||
},
|
||||
NewSet: &hostsets.HostSet{},
|
||||
},
|
||||
expectedErr: "new set missing attributes",
|
||||
expectedErrContains: "new set missing attributes",
|
||||
},
|
||||
{
|
||||
name: "set attribute load error",
|
||||
@@ -793,7 +803,8 @@ func TestPluginOnUpdateSetErr(t *testing.T) {
|
||||
}),
|
||||
},
|
||||
},
|
||||
expectedErr: "error parsing set attributes: unknown set attribute fields provided: bar, foo",
|
||||
expectedErrContains: "error parsing set attributes: ",
|
||||
expectedErrContains2: "unknown set attribute fields provided: bar, foo",
|
||||
},
|
||||
{
|
||||
name: "client load error",
|
||||
@@ -821,7 +832,7 @@ func TestPluginOnUpdateSetErr(t *testing.T) {
|
||||
awsutil.MockOptionErr(errors.New(testOptionErr)),
|
||||
}),
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error getting EC2 client: error getting AWS session: error reading options in NewCredentialsConfig: %s", testOptionErr),
|
||||
expectedErrContains: fmt.Sprintf("error getting EC2 client: error getting AWS session: error reading options in NewCredentialsConfig: %s", testOptionErr),
|
||||
},
|
||||
{
|
||||
name: "DescribeInstances error",
|
||||
@@ -850,7 +861,7 @@ func TestPluginOnUpdateSetErr(t *testing.T) {
|
||||
testMockEC2WithDescribeInstancesError(errors.New(testDescribeInstancesError)),
|
||||
)),
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error performing dry run of DescribeInstances: %s", testDescribeInstancesError),
|
||||
expectedErrContains: fmt.Sprintf("error performing dry run of DescribeInstances: %s", testDescribeInstancesError),
|
||||
},
|
||||
{
|
||||
name: "DescribeInstances non-error",
|
||||
@@ -878,7 +889,7 @@ func TestPluginOnUpdateSetErr(t *testing.T) {
|
||||
nil,
|
||||
)),
|
||||
},
|
||||
expectedErr: "query error: DescribeInstances DryRun should have returned error, but none was found",
|
||||
expectedErrContains: "query error: DescribeInstances DryRun should have returned error, but none was found",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -890,22 +901,26 @@ func TestPluginOnUpdateSetErr(t *testing.T) {
|
||||
testStateOpts: tc.opts,
|
||||
}
|
||||
_, err := p.OnUpdateSet(context.Background(), tc.req)
|
||||
require.EqualError(err, tc.expectedErr)
|
||||
require.Contains(err.Error(), tc.expectedErrContains)
|
||||
if tc.expectedErrContains2 != "" {
|
||||
require.Contains(err.Error(), tc.expectedErrContains2)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestPluginListHostsErr(t *testing.T) {
|
||||
cases := []struct {
|
||||
name string
|
||||
req *pb.ListHostsRequest
|
||||
opts []awsCatalogPersistedStateOption
|
||||
expectedErr string
|
||||
name string
|
||||
req *pb.ListHostsRequest
|
||||
opts []awsCatalogPersistedStateOption
|
||||
expectedErrContains string
|
||||
expectedErrContains2 string
|
||||
}{
|
||||
{
|
||||
name: "nil catalog",
|
||||
req: &pb.ListHostsRequest{},
|
||||
expectedErr: "catalog is nil",
|
||||
name: "nil catalog",
|
||||
req: &pb.ListHostsRequest{},
|
||||
expectedErrContains: "catalog is nil",
|
||||
},
|
||||
{
|
||||
name: "nil catalog attributes",
|
||||
@@ -914,7 +929,7 @@ func TestPluginListHostsErr(t *testing.T) {
|
||||
Secrets: new(structpb.Struct),
|
||||
},
|
||||
},
|
||||
expectedErr: "catalog missing attributes",
|
||||
expectedErrContains: "catalog missing attributes",
|
||||
},
|
||||
{
|
||||
name: "error reading catalog attributes",
|
||||
@@ -924,7 +939,8 @@ func TestPluginListHostsErr(t *testing.T) {
|
||||
Attributes: new(structpb.Struct),
|
||||
},
|
||||
},
|
||||
expectedErr: "integrity error in host catalog attributes: missing required value \"region\"",
|
||||
expectedErrContains: "integrity error in host catalog attributes: ",
|
||||
expectedErrContains2: "missing required value \"region\"",
|
||||
},
|
||||
{
|
||||
name: "invalid region",
|
||||
@@ -936,7 +952,8 @@ func TestPluginListHostsErr(t *testing.T) {
|
||||
}),
|
||||
},
|
||||
},
|
||||
expectedErr: "integrity error in host catalog attributes: not a valid region: foobar",
|
||||
expectedErrContains: "integrity error in host catalog attributes: ",
|
||||
expectedErrContains2: "not a valid region: foobar",
|
||||
},
|
||||
{
|
||||
name: "persisted state setup error",
|
||||
@@ -959,7 +976,7 @@ func TestPluginListHostsErr(t *testing.T) {
|
||||
return errors.New(testOptionErr)
|
||||
},
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error loading persisted state: %s", testOptionErr),
|
||||
expectedErrContains: fmt.Sprintf("error loading persisted state: %s", testOptionErr),
|
||||
},
|
||||
{
|
||||
name: "nil sets",
|
||||
@@ -977,7 +994,7 @@ func TestPluginListHostsErr(t *testing.T) {
|
||||
}),
|
||||
},
|
||||
},
|
||||
expectedErr: "sets is nil",
|
||||
expectedErrContains: "sets is nil",
|
||||
},
|
||||
{
|
||||
name: "set missing id",
|
||||
@@ -996,7 +1013,7 @@ func TestPluginListHostsErr(t *testing.T) {
|
||||
},
|
||||
Sets: []*hostsets.HostSet{&hostsets.HostSet{}},
|
||||
},
|
||||
expectedErr: "set missing id",
|
||||
expectedErrContains: "set missing id",
|
||||
},
|
||||
{
|
||||
name: "set missing attributes",
|
||||
@@ -1019,7 +1036,7 @@ func TestPluginListHostsErr(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
expectedErr: "set missing attributes",
|
||||
expectedErrContains: "set missing attributes",
|
||||
},
|
||||
{
|
||||
name: "set attribute load error",
|
||||
@@ -1046,7 +1063,8 @@ func TestPluginListHostsErr(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
expectedErr: "error parsing set attributes: unknown set attribute fields provided: bar, foo",
|
||||
expectedErrContains: "error parsing set attributes: ",
|
||||
expectedErrContains2: "unknown set attribute fields provided: bar, foo",
|
||||
},
|
||||
{
|
||||
name: "client load error",
|
||||
@@ -1077,7 +1095,7 @@ func TestPluginListHostsErr(t *testing.T) {
|
||||
awsutil.MockOptionErr(errors.New(testOptionErr)),
|
||||
}),
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error getting EC2 client: error getting AWS session: error reading options in NewCredentialsConfig: %s", testOptionErr),
|
||||
expectedErrContains: fmt.Sprintf("error getting EC2 client: error getting AWS session: error reading options in NewCredentialsConfig: %s", testOptionErr),
|
||||
},
|
||||
{
|
||||
name: "DescribeInstances error",
|
||||
@@ -1109,7 +1127,7 @@ func TestPluginListHostsErr(t *testing.T) {
|
||||
testMockEC2WithDescribeInstancesError(errors.New(testDescribeInstancesError)),
|
||||
)),
|
||||
},
|
||||
expectedErr: fmt.Sprintf("error running DescribeInstances for host set id \"foobar\": %s", testDescribeInstancesError),
|
||||
expectedErrContains: fmt.Sprintf("error running DescribeInstances for host set id \"foobar\": %s", testDescribeInstancesError),
|
||||
},
|
||||
{
|
||||
name: "awsInstanceToHost error",
|
||||
@@ -1153,7 +1171,7 @@ func TestPluginListHostsErr(t *testing.T) {
|
||||
),
|
||||
)),
|
||||
},
|
||||
expectedErr: "error processing host results for host set id \"foobar\": response integrity error: missing instance id",
|
||||
expectedErrContains: "error processing host results for host set id \"foobar\": response integrity error: missing instance id",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1165,7 +1183,10 @@ func TestPluginListHostsErr(t *testing.T) {
|
||||
testStateOpts: tc.opts,
|
||||
}
|
||||
_, err := p.ListHosts(context.Background(), tc.req)
|
||||
require.EqualError(err, tc.expectedErr)
|
||||
require.Contains(err.Error(), tc.expectedErrContains)
|
||||
if tc.expectedErrContains2 != "" {
|
||||
require.Contains(err.Error(), tc.expectedErrContains2)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user