Skip to content

Commit c3ab851

Browse files
authored
Fix flakey live test (Azure#20405)
* Fix flakey live test Ensure key name is unique so it doesn't collide with stale data. * fix copy/pasta * update sync token after updating a setting
1 parent 2077f5e commit c3ab851

File tree

1 file changed

+33
-3
lines changed

1 file changed

+33
-3
lines changed

sdk/data/azappconfig/client_test.go

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ package azappconfig
88

99
import (
1010
"context"
11+
"fmt"
1112
"os"
1213
"testing"
14+
"time"
1315

1416
"github.com/stretchr/testify/require"
1517
)
@@ -22,7 +24,7 @@ func TestClient(t *testing.T) {
2224
t.Skip("Skipping client test")
2325
}
2426

25-
key := "key"
27+
key := fmt.Sprintf("key-%d", time.Now().Unix())
2628
label := "label"
2729
contentType := "content-type"
2830
value := "value"
@@ -72,6 +74,10 @@ func TestClient(t *testing.T) {
7274
require.Equal(t, label, *setResp.Label)
7375
require.Equal(t, contentType, *setResp.ContentType)
7476
require.Equal(t, value, *setResp.Value)
77+
require.NotNil(t, setResp.SyncToken)
78+
79+
// after changing the setting, update the sync token so we don't get cached, stale data
80+
client.UpdateSyncToken(*setResp.SyncToken)
7581

7682
getResp3, err6 := client.GetSetting(context.TODO(), key, &GetSettingOptions{Label: &label, OnlyIfChanged: etag})
7783
require.NoError(t, err6)
@@ -97,6 +103,10 @@ func TestClient(t *testing.T) {
97103
require.Equal(t, key, *setResp2.Key)
98104
require.Equal(t, label, *setResp2.Label)
99105
require.Equal(t, value, *setResp2.Value)
106+
require.NotNil(t, setResp.SyncToken)
107+
108+
// after changing the setting, update the sync token so we don't get cached, stale data
109+
client.UpdateSyncToken(*setResp.SyncToken)
100110

101111
setResp3, err8 := client.SetSetting(context.TODO(), key, &value, &SetSettingOptions{Label: &label, OnlyIfUnchanged: etag})
102112
require.Error(t, err8)
@@ -114,6 +124,10 @@ func TestClient(t *testing.T) {
114124
require.Equal(t, label, *roResp.Label)
115125
require.Equal(t, value, *roResp.Value)
116126
require.True(t, *roResp.IsReadOnly)
127+
require.NotNil(t, setResp.SyncToken)
128+
129+
// after changing the setting, update the sync token so we don't get cached, stale data
130+
client.UpdateSyncToken(*setResp.SyncToken)
117131

118132
roResp2, err10 := client.SetReadOnly(context.TODO(), key, false, &SetReadOnlyOptions{Label: &label})
119133
require.NoError(t, err10)
@@ -127,6 +141,10 @@ func TestClient(t *testing.T) {
127141
require.Equal(t, label, *roResp2.Label)
128142
require.Equal(t, value, *roResp2.Value)
129143
require.False(t, *roResp2.IsReadOnly)
144+
require.NotNil(t, setResp.SyncToken)
145+
146+
// after changing the setting, update the sync token so we don't get cached, stale data
147+
client.UpdateSyncToken(*setResp.SyncToken)
130148

131149
roResp3, err11 := client.SetReadOnly(context.TODO(), key, true, &SetReadOnlyOptions{Label: &label, OnlyIfUnchanged: etag})
132150
require.Error(t, err11)
@@ -145,6 +163,10 @@ func TestClient(t *testing.T) {
145163
require.Equal(t, label, *roResp4.Label)
146164
require.Equal(t, value, *roResp4.Value)
147165
require.True(t, *roResp4.IsReadOnly)
166+
require.NotNil(t, setResp.SyncToken)
167+
168+
// after changing the setting, update the sync token so we don't get cached, stale data
169+
client.UpdateSyncToken(*setResp.SyncToken)
148170

149171
roResp5, err13 := client.SetReadOnly(context.TODO(), key, false, &SetReadOnlyOptions{Label: &label, OnlyIfUnchanged: etag})
150172
require.Error(t, err13)
@@ -163,6 +185,10 @@ func TestClient(t *testing.T) {
163185
require.Equal(t, label, *roResp6.Label)
164186
require.Equal(t, value, *roResp6.Value)
165187
require.False(t, *roResp6.IsReadOnly)
188+
require.NotNil(t, setResp.SyncToken)
189+
190+
// after changing the setting, update the sync token so we don't get cached, stale data
191+
client.UpdateSyncToken(*setResp.SyncToken)
166192

167193
any := "*"
168194
revPgr := client.NewListRevisionsPager(SettingSelector{KeyFilter: &any, LabelFilter: &any, Fields: AllSettingFields()}, nil)
@@ -177,8 +203,8 @@ func TestClient(t *testing.T) {
177203

178204
settsPgr := client.NewListSettingsPager(SettingSelector{KeyFilter: &any, LabelFilter: &any, Fields: AllSettingFields()}, nil)
179205
require.NotEmpty(t, settsPgr)
180-
hasMoreSetts := revPgr.More()
181-
require.False(t, hasMoreSetts)
206+
hasMoreSetts := settsPgr.More()
207+
require.True(t, hasMoreSetts)
182208
settsResp, err16 := settsPgr.NextPage(context.TODO())
183209
require.NoError(t, err16)
184210
require.NotEmpty(t, settsResp)
@@ -197,6 +223,10 @@ func TestClient(t *testing.T) {
197223
require.Equal(t, key, *delResp.Key)
198224
require.Equal(t, label, *delResp.Label)
199225
require.Equal(t, value, *delResp.Value)
226+
require.NotNil(t, setResp.SyncToken)
227+
228+
// after changing the setting, update the sync token so we don't get cached, stale data
229+
client.UpdateSyncToken(*setResp.SyncToken)
200230

201231
addResp2, err18 := client.AddSetting(context.TODO(), key, &value, &AddSettingOptions{Label: &label, ContentType: &contentType})
202232
require.NoError(t, err18)

0 commit comments

Comments
 (0)