Skip to content

Commit ff98f63

Browse files
committed
test(imap): improve test
1 parent 8f0851b commit ff98f63

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

imap/idle_test.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -188,25 +188,27 @@ func TestSendUpdatesWhileIdle(t *testing.T) {
188188
IdleFunc: func(w imap.UpdateWriter, done chan struct{}, session map[string]interface{}) error {
189189
session["idle"] = done
190190
go func() {
191+
defer close(sent)
192+
191193
err := w.WriteNumMessages(10)
192194
require.NoError(t, err)
193195
err = w.WriteMessageFlags(20, []imap.Flag{imap.FlagSeen})
194196
require.NoError(t, err)
195197
err = w.WriteExpunge(1)
196-
sent <- true
197198
}()
198199
return nil
199200
},
200201
},
201202
}
202-
defer s.Close()
203203
go func() {
204204
err := s.ListenAndServe()
205205
require.ErrorIs(t, err, imap.ErrServerClosed)
206206
}()
207-
208207
c := imap.NewClient(fmt.Sprintf("localhost:%v", p))
209-
defer func() { _ = c.Close() }()
208+
defer func() {
209+
_ = c.Close()
210+
defer s.Close()
211+
}()
210212

211213
_, err := c.Dial()
212214
require.NoError(t, err)
@@ -220,7 +222,11 @@ func TestSendUpdatesWhileIdle(t *testing.T) {
220222
require.NoError(t, err)
221223
require.Equal(t, "+ idling", res)
222224

223-
<-sent
225+
select {
226+
case <-sent:
227+
case <-time.After(4 * time.Second):
228+
t.Fatal("timeout waiting for updates")
229+
}
224230

225231
res, err = c.ReadLine()
226232
require.NoError(t, err)

0 commit comments

Comments
 (0)