Commit 280bac53 authored by Adrian Sutton's avatar Adrian Sutton Committed by GitHub

op-dispute-mon: Fix flaky test that was dependent on map ordering (#12606)

parent 433f488f
...@@ -155,7 +155,12 @@ func TestExtractor_Extract(t *testing.T) { ...@@ -155,7 +155,12 @@ func TestExtractor_Extract(t *testing.T) {
}) })
t.Run("UseCachedValueOnFailure", func(t *testing.T) { t.Run("UseCachedValueOnFailure", func(t *testing.T) {
enricher := &mockEnricher{} enricher := &mockEnricher{
action: func(game *monTypes.EnrichedGameData) error {
game.Status = gameTypes.GameStatusDefenderWon
return nil
},
}
extractor, _, games, _, cl := setupExtractorTest(t, enricher) extractor, _, games, _, cl := setupExtractorTest(t, enricher)
gameA := common.Address{0xaa} gameA := common.Address{0xaa}
gameB := common.Address{0xbb} gameB := common.Address{0xbb}
...@@ -169,8 +174,10 @@ func TestExtractor_Extract(t *testing.T) { ...@@ -169,8 +174,10 @@ func TestExtractor_Extract(t *testing.T) {
require.Len(t, enriched, 2) require.Len(t, enriched, 2)
require.Equal(t, 2, enricher.calls) require.Equal(t, 2, enricher.calls)
firstUpdateTime := cl.Now() firstUpdateTime := cl.Now()
require.Equal(t, firstUpdateTime, enriched[0].LastUpdateTime) // All results should have current LastUpdateTime
require.Equal(t, firstUpdateTime, enriched[1].LastUpdateTime) for _, data := range enriched {
require.Equal(t, firstUpdateTime, data.LastUpdateTime)
}
cl.AdvanceTime(2 * time.Minute) cl.AdvanceTime(2 * time.Minute)
secondUpdateTime := cl.Now() secondUpdateTime := cl.Now()
...@@ -189,10 +196,17 @@ func TestExtractor_Extract(t *testing.T) { ...@@ -189,10 +196,17 @@ func TestExtractor_Extract(t *testing.T) {
require.Equal(t, 1, failed) require.Equal(t, 1, failed)
require.Len(t, enriched, 2) require.Len(t, enriched, 2)
require.Equal(t, 4, enricher.calls) require.Equal(t, 4, enricher.calls)
require.Equal(t, enriched[0].Status, gameTypes.GameStatusInProgress) // Uses cached value from game A // The returned games are not in a fixed order, create a map to look up the game we need to assert
require.Equal(t, enriched[1].Status, gameTypes.GameStatusChallengerWon) // Updates game B actual := make(map[common.Address]*monTypes.EnrichedGameData)
require.Equal(t, firstUpdateTime, enriched[0].LastUpdateTime) for _, data := range enriched {
require.Equal(t, secondUpdateTime, enriched[1].LastUpdateTime) actual[data.Proxy] = data
}
require.Contains(t, actual, gameA)
require.Contains(t, actual, gameB)
require.Equal(t, actual[gameA].Status, gameTypes.GameStatusDefenderWon) // Uses cached value from game A
require.Equal(t, actual[gameB].Status, gameTypes.GameStatusChallengerWon) // Updates game B
require.Equal(t, firstUpdateTime, actual[gameA].LastUpdateTime)
require.Equal(t, secondUpdateTime, actual[gameB].LastUpdateTime)
}) })
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment