@@ -6,6 +6,9 @@ import esdee/dispatcher
66import gleam/erlang/process
77import glip
88
9+ // This can be slow on GitHub
10+ const receive_timeout = 100
11+
912pub fn dispatch_empty_test ( ) {
1013 // Smoke test that nothing happens with an empty dispatcher
1114 dispatcher . new ( )
@@ -31,9 +34,9 @@ pub fn dispatch_basic_test() {
3134 dispatcher . dispatch ( dispatcher , ServiceTypeDiscovered ( service_type ) )
3235 dispatcher . dispatch ( dispatcher , ServiceDiscovered ( service ) )
3336
34- assert process . receive(type_subject, 10 ) == Ok(service_type)
35- assert process.receive(details_subject, 10 ) == Ok(service)
36- assert process.receive(other_details_subject, 10 ) == Error(Nil)
37+ assert process . receive(type_subject, receive_timeout ) == Ok(service_type)
38+ assert process.receive(details_subject, receive_timeout ) == Ok(service)
39+ assert process.receive(other_details_subject, receive_timeout ) == Error(Nil)
3740}
3841
3942pub fn subscribe_twice_test() {
@@ -52,12 +55,12 @@ pub fn subscribe_twice_test() {
5255 dispatcher.dispatch(dispatcher, ServiceTypeDiscovered(service_type))
5356 dispatcher.dispatch(dispatcher, ServiceDiscovered(service))
5457
55- assert process.receive(type_subject, 10 ) == Ok(service_type)
56- assert process.receive(details_subject, 10 ) == Ok(service)
58+ assert process.receive(type_subject, receive_timeout ) == Ok(service_type)
59+ assert process.receive(details_subject, receive_timeout ) == Ok(service)
5760
5861 // Should not be received twice
59- assert process.receive(type_subject, 10 ) == Error(Nil)
60- assert process.receive(details_subject, 10 ) == Error(Nil)
62+ assert process.receive(type_subject, receive_timeout ) == Error(Nil)
63+ assert process.receive(details_subject, receive_timeout ) == Error(Nil)
6164}
6265
6366pub fn unsubscribe_types_test() {
@@ -73,7 +76,7 @@ pub fn unsubscribe_types_test() {
7376 let service_type = ServiceTypeDiscovered("my-service")
7477 dispatcher.dispatch(dispatcher, service_type)
7578
76- assert process.receive(type_subject, 10 ) == Error(Nil)
79+ assert process.receive(type_subject, receive_timeout ) == Error(Nil)
7780}
7881
7982pub fn unsubscribe_details_test() {
@@ -99,9 +102,9 @@ pub fn unsubscribe_details_test() {
99102 subject_1,
100103 )
101104 dispatcher.dispatch(dispatcher, ServiceDiscovered(my_service))
102- assert process.receive(subject_1, 10 ) == Error(Nil)
103- assert process.receive(subject_2, 10 ) == Ok(my_service)
104- assert process.receive(both_subject, 10 ) == Ok(my_service)
105+ assert process.receive(subject_1, receive_timeout ) == Error(Nil)
106+ assert process.receive(subject_2, receive_timeout ) == Ok(my_service)
107+ assert process.receive(both_subject, receive_timeout ) == Ok(my_service)
105108
106109 // Unsubscribe from my-service, other-service should still work
107110 let dispatcher =
@@ -111,7 +114,7 @@ pub fn unsubscribe_details_test() {
111114 both_subject,
112115 )
113116 dispatcher.dispatch(dispatcher, ServiceDiscovered(other_service))
114- assert process.receive(both_subject, 10 ) == Ok(other_service)
117+ assert process.receive(both_subject, receive_timeout ) == Ok(other_service)
115118
116119 // Unsubscribe last subscriber, nothing should be received
117120 let dispatcher =
@@ -126,7 +129,7 @@ pub fn unsubscribe_details_test() {
126129 |> process.select(subject_1)
127130 |> process.select(subject_2)
128131 |> process.select(both_subject)
129- |> process.selector_receive(10 )
132+ |> process.selector_receive(receive_timeout )
130133 == Error(Nil)
131134}
132135
0 commit comments