Skip to content

Commit 44d5d4f

Browse files
test(events): add synctest to subscriber tests (#5266)
1 parent cd6c34a commit 44d5d4f

File tree

1 file changed

+45
-44
lines changed

1 file changed

+45
-44
lines changed

pkg/storer/internal/events/subscribe_test.go

Lines changed: 45 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -6,54 +6,55 @@ package events_test
66

77
import (
88
"testing"
9+
"testing/synctest"
910
"time"
1011

1112
"github.com/ethersphere/bee/v2/pkg/storer/internal/events"
1213
)
1314

1415
func TestSubscriber(t *testing.T) {
15-
t.Parallel()
16-
17-
s := events.NewSubscriber()
18-
19-
bin0_1, unsub0_1 := s.Subscribe("0")
20-
bin0_2, unsub0_2 := s.Subscribe("0")
21-
t.Cleanup(func() { unsub0_1(); unsub0_2() })
22-
go s.Trigger("0")
23-
24-
gotSignals := make(chan struct{})
25-
26-
go func() {
27-
defer close(gotSignals)
28-
<-bin0_1
29-
<-bin0_2
30-
}()
31-
32-
select {
33-
case <-gotSignals:
34-
case <-time.After(time.Second):
35-
t.Fatal("signals did not fire in time")
36-
}
37-
38-
select {
39-
case <-bin0_1:
40-
t.Fatalf("trigger should not have fired again")
41-
case <-bin0_2:
42-
t.Fatalf("trigger should not have fired again")
43-
default:
44-
}
45-
46-
bin1, unsub1 := s.Subscribe("1")
47-
go s.Trigger("1")
48-
go s.Trigger("1")
49-
<-bin1
50-
<-bin1
51-
52-
unsub1()
53-
54-
select {
55-
case <-bin1:
56-
t.Fatalf("trigger should not have fired again")
57-
default:
58-
}
16+
synctest.Test(t, func(t *testing.T) {
17+
s := events.NewSubscriber()
18+
19+
bin0_1, unsub0_1 := s.Subscribe("0")
20+
bin0_2, unsub0_2 := s.Subscribe("0")
21+
t.Cleanup(func() { unsub0_1(); unsub0_2() })
22+
go s.Trigger("0")
23+
24+
gotSignals := make(chan struct{})
25+
26+
go func() {
27+
defer close(gotSignals)
28+
<-bin0_1
29+
<-bin0_2
30+
}()
31+
32+
select {
33+
case <-gotSignals:
34+
case <-time.After(time.Second):
35+
t.Fatal("signals did not fire in time")
36+
}
37+
38+
select {
39+
case <-bin0_1:
40+
t.Fatalf("trigger should not have fired again")
41+
case <-bin0_2:
42+
t.Fatalf("trigger should not have fired again")
43+
default:
44+
}
45+
46+
bin1, unsub1 := s.Subscribe("1")
47+
go s.Trigger("1")
48+
go s.Trigger("1")
49+
<-bin1
50+
<-bin1
51+
52+
unsub1()
53+
54+
select {
55+
case <-bin1:
56+
t.Fatalf("trigger should not have fired again")
57+
default:
58+
}
59+
})
5960
}

0 commit comments

Comments
 (0)