Skip to content

Commit 0e8ca30

Browse files
authored
Technical/Fix flaky tests (#188)
1 parent a0f8b54 commit 0e8ca30

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

helpers.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package smtpmock
33
import (
44
"fmt"
55
"regexp"
6+
"time"
67
)
78

89
// Regex builder
@@ -20,8 +21,8 @@ func matchRegex(strContext, regexPattern string) bool {
2021
return regex.MatchString(strContext)
2122
}
2223

23-
// Returns string by regex pattern capture group index. For cases when regex not matched or
24-
// capture group not found returns empty string
24+
// Returns string by regex pattern capture group index.
25+
// For cases when regex not matched or capture group not found returns empty string
2526
func regexCaptureGroup(str string, regexPattern string, captureGroup int) (capturedString string) {
2627
var regex *regexp.Regexp
2728
defer func() { _ = recover() }()
@@ -47,3 +48,8 @@ func isIncluded(slice []string, target string) bool {
4748
func serverWithPortNumber(server string, portNumber int) string {
4849
return fmt.Sprintf("%s:%d", server, portNumber)
4950
}
51+
52+
// Sleeps for the given duration in milliseconds
53+
func sleepMilliseconds(duration int) {
54+
time.Sleep(time.Duration(duration) * time.Millisecond)
55+
}

smtpmock_test.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package smtpmock
33
import (
44
"fmt"
55
"testing"
6-
"time"
76

87
"github.com/stretchr/testify/assert"
98
)
@@ -154,9 +153,12 @@ func TestNew(t *testing.T) {
154153
assert.False(t, server.isStarted())
155154

156155
assert.NoError(t, server.Start())
156+
sleepMilliseconds(100)
157157
assert.True(t, server.isStarted())
158158
_ = runSuccessfulSMTPSession(configuration.hostAddress, server.PortNumber(), true, 0)
159+
sleepMilliseconds(100)
159160
_ = server.Stop()
161+
sleepMilliseconds(100)
160162

161163
assert.Equal(t, 2, len(server.Messages()))
162164
assert.NotNil(t, server.quit)
@@ -221,11 +223,11 @@ func TestServerMessagesRaceCondition(t *testing.T) {
221223
}()
222224

223225
// ensure that server.MessagesAndPurge() doesn't touch messages from active SMTP-session
224-
time.Sleep(5 * time.Millisecond)
226+
sleepMilliseconds(5)
225227
assert.Empty(t, server.MessagesAndPurge())
226228

227229
// ensure that messages appears after SMTP-session
228-
time.Sleep(100 * time.Millisecond)
230+
sleepMilliseconds(100)
229231
assert.Len(t, server.Messages(), 1)
230232

231233
if err := server.Stop(); err != nil {

0 commit comments

Comments
 (0)