(t *testing.T)
| 334 | } |
| 335 | |
| 336 | func Test_WatchPrefix(t *testing.T) { |
| 337 | ddbMock := NewDynamodbClientMock() |
| 338 | codecMock := &CodecMock{} |
| 339 | c := NewClientMock(ddbMock, codecMock, TestLogger{}, prometheus.NewPedanticRegistry(), defaultPullTime, defaultBackoff) |
| 340 | data := map[string]dynamodbItem{} |
| 341 | dataKey := []string{"t1", "t2"} |
| 342 | data[dataKey[0]] = dynamodbItem{data: []byte(dataKey[0])} |
| 343 | data[dataKey[1]] = dynamodbItem{data: []byte(dataKey[1])} |
| 344 | calls := 0 |
| 345 | |
| 346 | ddbMock.On("Query").Return(data, nil) |
| 347 | codecMock.On("Decode").Twice() |
| 348 | |
| 349 | c.WatchPrefix(context.TODO(), key, func(key string, i any) bool { |
| 350 | require.EqualValues(t, string(data[key].data), i) |
| 351 | delete(data, key) |
| 352 | calls++ |
| 353 | return calls < 2 |
| 354 | }) |
| 355 | |
| 356 | require.True(t, len(data) == 0) |
| 357 | |
| 358 | ddbMock.AssertNumberOfCalls(t, "Query", 1) |
| 359 | } |
| 360 | |
| 361 | func Test_UpdateStaleData(t *testing.T) { |
| 362 | ddbMock := NewDynamodbClientMock() |
nothing calls this directly
no test coverage detected