diff --git a/raft/node_test.go b/raft/node_test.go index 1588fcda4..946efbb01 100644 --- a/raft/node_test.go +++ b/raft/node_test.go @@ -12,17 +12,7 @@ func TestNode(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - n := Start(1, []int64{1}, 0, 0) - ch := make(chan Ready) - go func() { - for { - ch <- <-n.Ready() - } - }() - n.Campaign(ctx) - n.Propose(ctx, []byte("foo")) - - want := []Ready{ + wants := []Ready{ { State: raftpb.State{Term: 1, Vote: -1, Commit: 1, LastIndex: 1}, Entries: []raftpb.Entry{{Term: 1, Index: 1}}, @@ -35,16 +25,20 @@ func TestNode(t *testing.T) { }, } - for i, w := range want { - if g := <-ch; !reflect.DeepEqual(g, w) { - t.Errorf("#%d: g = %+v,\n w %+v", i, g, w) - } + n := Start(1, []int64{1}, 0, 0) + n.Campaign(ctx) + if g := <-n.Ready(); !reflect.DeepEqual(g, wants[0]) { + t.Errorf("#%d: g = %+v,\n w %+v", 1, g, wants[0]) + } + + n.Propose(ctx, []byte("foo")) + if g := <-n.Ready(); !reflect.DeepEqual(g, wants[1]) { + t.Errorf("#%d: g = %+v,\n w %+v", 2, g, wants[1]) } select { - case rd := <-ch: + case rd := <-n.Ready(): t.Errorf("unexpected Ready: %+v", rd) default: } - }