fix(tests): check eventual web key state (#8587)

# Which Problems Are Solved

Deal with eventual consistency in the webkey integration tests.

# How the Problems Are Solved

Use an eventual with T for the list state check.

# Additional Changes

- none

# Additional Context

- none

---------

Co-authored-by: Livio Spring <livio.a@gmail.com>
This commit is contained in:
Tim Möhlmann
2024-09-10 14:15:25 +03:00
committed by GitHub
parent 650c21f18a
commit 622a176be4

View File

@@ -191,13 +191,13 @@ func createInstance(t *testing.T, enableFeature bool) (*integration.Instance, co
}) })
require.NoError(t, err) require.NoError(t, err)
} }
assert.EventuallyWithT(t, func(ttt *assert.CollectT) { assert.EventuallyWithT(t, func(collect *assert.CollectT) {
resp, err := instance.Client.WebKeyV3Alpha.ListWebKeys(iamCTX, &webkey.ListWebKeysRequest{}) resp, err := instance.Client.WebKeyV3Alpha.ListWebKeys(iamCTX, &webkey.ListWebKeysRequest{})
if enableFeature { if enableFeature {
assert.NoError(ttt, err) assert.NoError(collect, err)
assert.Len(t, resp.GetWebKeys(), 2) assert.Len(collect, resp.GetWebKeys(), 2)
} else { } else {
assert.Error(t, err) assert.Error(collect, err)
} }
}, time.Minute, time.Second) }, time.Minute, time.Second)
@@ -213,33 +213,35 @@ func assertFeatureDisabledError(t *testing.T, err error) {
} }
func checkWebKeyListState(ctx context.Context, t *testing.T, instance *integration.Instance, nKeys int, expectActiveKeyID string, config any) { func checkWebKeyListState(ctx context.Context, t *testing.T, instance *integration.Instance, nKeys int, expectActiveKeyID string, config any) {
resp, err := instance.Client.WebKeyV3Alpha.ListWebKeys(ctx, &webkey.ListWebKeysRequest{}) assert.EventuallyWithT(t, func(collect *assert.CollectT) {
require.NoError(t, err) resp, err := instance.Client.WebKeyV3Alpha.ListWebKeys(ctx, &webkey.ListWebKeysRequest{})
list := resp.GetWebKeys() require.NoError(collect, err)
require.Len(t, list, nKeys) list := resp.GetWebKeys()
assert.Len(collect, list, nKeys)
now := time.Now() now := time.Now()
var gotActiveKeyID string var gotActiveKeyID string
for _, key := range list { for _, key := range list {
integration.AssertResourceDetails(t, &resource_object.Details{ integration.AssertResourceDetails(t, &resource_object.Details{
Created: timestamppb.Now(), Created: timestamppb.Now(),
Changed: timestamppb.Now(), Changed: timestamppb.Now(),
Owner: &object.Owner{ Owner: &object.Owner{
Type: object.OwnerType_OWNER_TYPE_INSTANCE, Type: object.OwnerType_OWNER_TYPE_INSTANCE,
Id: instance.ID(), Id: instance.ID(),
}, },
}, key.GetDetails()) }, key.GetDetails())
assert.WithinRange(t, key.GetDetails().GetChanged().AsTime(), now.Add(-time.Minute), now.Add(time.Minute)) assert.WithinRange(collect, key.GetDetails().GetChanged().AsTime(), now.Add(-time.Minute), now.Add(time.Minute))
assert.NotEqual(t, webkey.WebKeyState_STATE_UNSPECIFIED, key.GetState()) assert.NotEqual(collect, webkey.WebKeyState_STATE_UNSPECIFIED, key.GetState())
assert.NotEqual(t, webkey.WebKeyState_STATE_REMOVED, key.GetState()) assert.NotEqual(collect, webkey.WebKeyState_STATE_REMOVED, key.GetState())
assert.Equal(t, config, key.GetConfig().GetConfig()) assert.Equal(collect, config, key.GetConfig().GetConfig())
if key.GetState() == webkey.WebKeyState_STATE_ACTIVE { if key.GetState() == webkey.WebKeyState_STATE_ACTIVE {
gotActiveKeyID = key.GetDetails().GetId() gotActiveKeyID = key.GetDetails().GetId()
}
} }
} assert.NotEmpty(collect, gotActiveKeyID)
assert.NotEmpty(t, gotActiveKeyID) if expectActiveKeyID != "" {
if expectActiveKeyID != "" { assert.Equal(collect, expectActiveKeyID, gotActiveKeyID)
assert.Equal(t, expectActiveKeyID, gotActiveKeyID) }
} }, time.Minute, time.Second)
} }