@@ -544,20 +544,17 @@ func TestCancelAsyncTransition(t *testing.T) {
544
544
if ! ok {
545
545
t .Errorf ("expected error to be 'AsyncError', got %v" , err )
546
546
}
547
- var asyncStateTransitionWasCanceled bool
547
+ var asyncStateTransitionWasCanceled = make ( chan struct {})
548
548
go func () {
549
549
<- asyncError .Ctx .Done ()
550
- asyncStateTransitionWasCanceled = true
550
+ close ( asyncStateTransitionWasCanceled )
551
551
}()
552
552
asyncError .CancelTransition ()
553
- time . Sleep ( 20 * time . Millisecond )
553
+ <- asyncStateTransitionWasCanceled
554
554
555
555
if err = fsm .Transition (); err != nil {
556
556
t .Errorf ("expected no error, got %v" , err )
557
557
}
558
- if ! asyncStateTransitionWasCanceled {
559
- t .Error ("expected async state transition cancelation to have propagated" )
560
- }
561
558
if fsm .Current () != "start" {
562
559
t .Error ("expected state to be 'start'" )
563
560
}
@@ -775,7 +772,7 @@ func TestTransitionInCallbacks(t *testing.T) {
775
772
776
773
func TestContextInCallbacks (t * testing.T ) {
777
774
var fsm * FSM
778
- var enterEndAsyncWorkDone bool
775
+ var enterEndAsyncWorkDone = make ( chan struct {})
779
776
fsm = NewFSM (
780
777
"start" ,
781
778
Events {
@@ -787,7 +784,7 @@ func TestContextInCallbacks(t *testing.T) {
787
784
"enter_end" : func (ctx context.Context , e * Event ) {
788
785
go func () {
789
786
<- ctx .Done ()
790
- enterEndAsyncWorkDone = true
787
+ close ( enterEndAsyncWorkDone )
791
788
}()
792
789
793
790
<- ctx .Done ()
@@ -806,11 +803,7 @@ func TestContextInCallbacks(t *testing.T) {
806
803
if ! errors .Is (err , context .Canceled ) {
807
804
t .Errorf ("expected 'context canceled' error, got %v" , err )
808
805
}
809
- time .Sleep (20 * time .Millisecond )
810
-
811
- if ! enterEndAsyncWorkDone {
812
- t .Error ("expected asynchronous work in callback to be done but it wasn't" )
813
- }
806
+ <- enterEndAsyncWorkDone
814
807
815
808
currentState := fsm .Current ()
816
809
if currentState != "end" {
0 commit comments