Skip to content

Commit 47911d8

Browse files
committed
fix: #99 Handle nil invocation stats and raise timer for race conditions
Signed-off-by: Laurent Broudoux <laurent.broudoux@gmail.com>
1 parent 8708c97 commit 47911d8

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

internal/test/helper.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,11 @@ func MicrocksMockingFunctionality(t *testing.T, ctx context.Context, microcksCon
8181
baseApiUrl, err := microcksContainer.RestMockEndpoint(ctx, "API Pastries", "0.0.1")
8282
require.NoError(t, err)
8383

84+
// Check it has not yet been called once.
85+
callCount, err := microcksContainer.ServiceInvocationsCount(ctx, "API Pastries", "0.0.1")
86+
require.NoError(t, err)
87+
require.Equal(t, 0, callCount)
88+
8489
resp, err := http.Get(baseApiUrl + "/pastries/Millefeuille")
8590
require.NoError(t, err)
8691
require.Equal(t, http.StatusOK, resp.StatusCode)
@@ -99,7 +104,7 @@ func MicrocksMockingFunctionality(t *testing.T, ctx context.Context, microcksCon
99104
require.NoError(t, err)
100105
require.True(t, called)
101106

102-
callCount, err := microcksContainer.ServiceInvocationsCount(ctx, "API Pastries", "0.0.1")
107+
callCount, err = microcksContainer.ServiceInvocationsCount(ctx, "API Pastries", "0.0.1")
103108
require.NoError(t, err)
104109
require.Equal(t, 1, callCount)
105110

microcks.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -384,11 +384,17 @@ func (container *MicrocksContainer) ServiceInvocationsCountAtDate(ctx context.Co
384384
day := formatDay(date)
385385

386386
// To avoid race condition issue while Microcks server is processing metrics asynchronously.
387-
time.Sleep(100 * time.Millisecond)
387+
// The wait time is lower on other language bindings (100ms). Don't know why...
388+
time.Sleep(250 * time.Millisecond)
388389
stats, err := c.GetInvocationStatsByServiceWithResponse(ctx, serviceName, serviceVersion, &client.GetInvocationStatsByServiceParams{
389390
Day: &day,
390391
})
391-
return int(stats.JSON200.DailyCount), err
392+
393+
invocationStats := stats.JSON200
394+
if invocationStats != nil {
395+
return int(stats.JSON200.DailyCount), err
396+
}
397+
return 0, err
392398
}
393399

394400
func importArtifactHook(artifactFilePath string, mainArtifact bool) testcontainers.ContainerHook {

0 commit comments

Comments
 (0)