Skip to content

Commit 55d3380

Browse files
committed
Added separate TestStateStore_GetNodeID to test GetNodeID.
More complete test coverage for GetNodeID
1 parent e323155 commit 55d3380

File tree

1 file changed

+49
-13
lines changed

1 file changed

+49
-13
lines changed

agent/consul/state/catalog_test.go

+49-13
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,56 @@ func makeRandomNodeID(t *testing.T) types.NodeID {
2525
return types.NodeID(id)
2626
}
2727

28+
func TestStateStore_GetNodeID(t *testing.T) {
29+
s := testStateStore(t)
30+
_, out, err := s.GetNodeID(types.NodeID("wrongId"))
31+
if err == nil || out != nil || !strings.Contains(err.Error(), "node lookup by ID failed: UUID must be 36 characters") {
32+
t.Fatalf("want an error, nil value, err:=%q ; out:=%q", err.Error(), out)
33+
}
34+
_, out, err = s.GetNodeID(types.NodeID("0123456789abcdefghijklmnopqrstuvwxyz"))
35+
if err == nil || out != nil || !strings.Contains(err.Error(), "node lookup by ID failed: wrong UUID format") {
36+
t.Fatalf("want an error, nil value, err:=%q ; out:=%q", err, out)
37+
}
38+
39+
_, out, err = s.GetNodeID(types.NodeID("00a916bc-a357-4a19-b886-59419fcee50Z"))
40+
if err == nil || out != nil || !strings.Contains(err.Error(), "node lookup by ID failed: encoding/hex: invalid byte") {
41+
t.Fatalf("want an error, nil value, err:=%q ; out:=%q", err, out)
42+
}
43+
44+
_, out, err = s.GetNodeID(types.NodeID("00a916bc-a357-4a19-b886-59419fcee506"))
45+
if err != nil || out != nil {
46+
t.Fatalf("do not want any error nor returned value, err:=%q ; out:=%q", err, out)
47+
}
48+
49+
nodeID := types.NodeID("00a916bc-a357-4a19-b886-59419fceeaaa")
50+
req := &structs.RegisterRequest{
51+
ID: nodeID,
52+
Node: "node1",
53+
Address: "1.2.3.4",
54+
}
55+
if err := s.EnsureRegistration(1, req); err != nil {
56+
t.Fatalf("err: %s", err)
57+
}
58+
59+
_, out, err = s.GetNodeID(nodeID)
60+
if err != nil {
61+
t.Fatalf("got err %s want nil", err)
62+
}
63+
if out == nil || out.ID != nodeID {
64+
t.Fatalf("out should not be nil and contain nodeId, but was:=%#q", out)
65+
}
66+
// Case insensitive lookup should work as well
67+
_, out, err = s.GetNodeID(types.NodeID("00a916bC-a357-4a19-b886-59419fceeAAA"))
68+
if err != nil {
69+
t.Fatalf("got err %s want nil", err)
70+
}
71+
if out == nil || out.ID != nodeID {
72+
t.Fatalf("out should not be nil and contain nodeId, but was:=%#q", out)
73+
}
74+
}
75+
2876
func TestStateStore_EnsureRegistration(t *testing.T) {
77+
t.Parallel()
2978
s := testStateStore(t)
3079

3180
// Start with just a node.
@@ -70,19 +119,6 @@ func TestStateStore_EnsureRegistration(t *testing.T) {
70119
if got, want := out, out2; !verify.Values(t, "GetNodeID", got, want) {
71120
t.FailNow()
72121
}
73-
_, out3, err := s.GetNodeID(types.NodeID("wrongId"))
74-
if err == nil || out3 != nil || !strings.Contains(err.Error(), "node lookup by ID failed: UUID must be 36 characters") {
75-
t.Fatalf("want an error, nil value, err:=%q ; out3:=%q", err.Error(), out3)
76-
}
77-
_, out3, err = s.GetNodeID(types.NodeID("0123456789abcdefghijklmnopqrstuvwxyz"))
78-
if err == nil || out3 != nil || !strings.Contains(err.Error(), "node lookup by ID failed: wrong UUID format") {
79-
t.Fatalf("want an error, nil value, err:=%q ; out3:=%q", err, out3)
80-
}
81-
82-
_, out3, err = s.GetNodeID(types.NodeID("00a916bc-a357-4a19-b886-59419fcee50Z"))
83-
if err == nil || out3 != nil || !strings.Contains(err.Error(), "node lookup by ID failed: encoding/hex: invalid byte") {
84-
t.Fatalf("want an error, nil value, err:=%q ; out3:=%q", err, out3)
85-
}
86122
}
87123
verifyNode()
88124

0 commit comments

Comments
 (0)