test: add soft error spec

This commit is contained in:
Vinh Nguyen 2024-11-19 22:12:27 +08:00
parent 74fa6f99cd
commit cd8cc00d9e
No known key found for this signature in database

View File

@ -81,6 +81,10 @@ func NewRoute53APIStub(t *testing.T) *Route53APIStub {
}
func (r *Route53APIStub) ListResourceRecordSets(ctx context.Context, input *route53.ListResourceRecordSetsInput, optFns ...func(options *route53.Options)) (*route53.ListResourceRecordSetsOutput, error) {
if r.m.isMocked("ListResourceRecordSets", input) {
return r.m.ListResourceRecordSets(ctx, input, optFns...)
}
output := &route53.ListResourceRecordSetsOutput{} // TODO: Support optional input args.
require.NotNil(r.t, input.MaxItems)
assert.EqualValues(r.t, route53PageSize, *input.MaxItems)
@ -240,6 +244,14 @@ type dynamicMock struct {
mock.Mock
}
func (m *dynamicMock) ListResourceRecordSets(ctx context.Context, input *route53.ListResourceRecordSetsInput, optFns ...func(options *route53.Options)) (*route53.ListResourceRecordSetsOutput, error) {
args := m.Called(input)
if args.Get(0) != nil {
return args.Get(0).(*route53.ListResourceRecordSetsOutput), args.Error(1)
}
return nil, args.Error(1)
}
func (m *dynamicMock) ChangeResourceRecordSets(input *route53.ChangeResourceRecordSetsInput) (*route53.ChangeResourceRecordSetsOutput, error) {
args := m.Called(input)
if args.Get(0) != nil {
@ -518,6 +530,22 @@ func TestAWSRecords(t *testing.T) {
})
}
func TestAWSRecordsSoftError(t *testing.T) {
pvd, subClient := newAWSProvider(t, endpoint.NewDomainFilter([]string{"ext-dns-test-2.teapot.zalan.do."}), provider.NewZoneIDFilter([]string{}), provider.NewZoneTypeFilter(""), false, false, []route53types.ResourceRecordSet{
{
Name: aws.String("list-test.zone-1.ext-dns-test-2.teapot.zalan.do."),
Type: route53types.RRTypeA,
TTL: aws.Int64(recordTTL),
ResourceRecords: []route53types.ResourceRecord{{Value: aws.String("1.2.3.4")}},
},
})
subClient.MockMethod("ListResourceRecordSets", mock.Anything).Return(nil, fmt.Errorf("Mock route53 failure"))
_, err := pvd.Records(context.Background())
require.Error(t, err)
require.ErrorIs(t, err, provider.SoftError)
}
func TestAWSAdjustEndpoints(t *testing.T) {
provider, _ := newAWSProvider(t, endpoint.NewDomainFilter([]string{"ext-dns-test-2.teapot.zalan.do."}), provider.NewZoneIDFilter([]string{}), provider.NewZoneTypeFilter(""), defaultEvaluateTargetHealth, false, nil)