Skip to content

Commit 11f33e5

Browse files
committed
test: add coverage for types/ports.go
1 parent 8ade1b3 commit 11f33e5

1 file changed

Lines changed: 251 additions & 0 deletions

File tree

types/ports_test.go

Lines changed: 251 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,251 @@
1+
package types
2+
3+
import (
4+
"testing"
5+
6+
"github.com/stretchr/testify/require"
7+
)
8+
9+
func TestDefaultPortConfig(t *testing.T) {
10+
cfg := DefaultPortConfig()
11+
12+
require.Equal(t, DefaultRPCPort, cfg.RPC)
13+
require.Equal(t, DefaultP2PPort, cfg.P2P)
14+
require.Equal(t, DefaultProxyPort, cfg.Proxy)
15+
require.Equal(t, DefaultGRPCPort, cfg.GRPC)
16+
require.Equal(t, DefaultGRPCWebPort, cfg.GRPCWeb)
17+
require.Equal(t, DefaultAPIPort, cfg.API)
18+
require.Equal(t, DefaultEVMRPCPort, cfg.EVMRPC)
19+
require.Equal(t, DefaultEVMWSPort, cfg.EVMWS)
20+
require.Equal(t, DefaultPProfPort, cfg.PProf)
21+
require.Equal(t, DefaultRosettaPort, cfg.Rosetta)
22+
}
23+
24+
func TestPortConfigForNode(t *testing.T) {
25+
tests := []struct {
26+
name string
27+
nodeIndex int
28+
wantRPC int
29+
wantP2P int
30+
wantGRPC int
31+
wantAPI int
32+
wantEVMRPC int
33+
}{
34+
{
35+
name: "node 0 uses default ports",
36+
nodeIndex: 0,
37+
wantRPC: 26657,
38+
wantP2P: 26656,
39+
wantGRPC: 9090,
40+
wantAPI: 1317,
41+
wantEVMRPC: 8545,
42+
},
43+
{
44+
name: "node 1 adds 10000 offset",
45+
nodeIndex: 1,
46+
wantRPC: 36657,
47+
wantP2P: 36656,
48+
wantGRPC: 19090,
49+
wantAPI: 11317,
50+
wantEVMRPC: 18545,
51+
},
52+
{
53+
name: "node 2 adds 20000 offset",
54+
nodeIndex: 2,
55+
wantRPC: 46657,
56+
wantP2P: 46656,
57+
wantGRPC: 29090,
58+
wantAPI: 21317,
59+
wantEVMRPC: 28545,
60+
},
61+
}
62+
63+
for _, tt := range tests {
64+
t.Run(tt.name, func(t *testing.T) {
65+
cfg := PortConfigForNode(tt.nodeIndex)
66+
67+
require.Equal(t, tt.wantRPC, cfg.RPC, "RPC port mismatch")
68+
require.Equal(t, tt.wantP2P, cfg.P2P, "P2P port mismatch")
69+
require.Equal(t, tt.wantGRPC, cfg.GRPC, "GRPC port mismatch")
70+
require.Equal(t, tt.wantAPI, cfg.API, "API port mismatch")
71+
require.Equal(t, tt.wantEVMRPC, cfg.EVMRPC, "EVMRPC port mismatch")
72+
})
73+
}
74+
}
75+
76+
func TestPortConfig_WithOffset(t *testing.T) {
77+
base := DefaultPortConfig()
78+
79+
// Apply +100 offset
80+
offset := base.WithOffset(100)
81+
82+
require.Equal(t, base.RPC+100, offset.RPC)
83+
require.Equal(t, base.P2P+100, offset.P2P)
84+
require.Equal(t, base.Proxy+100, offset.Proxy)
85+
require.Equal(t, base.GRPC+100, offset.GRPC)
86+
require.Equal(t, base.GRPCWeb+100, offset.GRPCWeb)
87+
require.Equal(t, base.API+100, offset.API)
88+
require.Equal(t, base.EVMRPC+100, offset.EVMRPC)
89+
require.Equal(t, base.EVMWS+100, offset.EVMWS)
90+
require.Equal(t, base.PProf+100, offset.PProf)
91+
require.Equal(t, base.Rosetta+100, offset.Rosetta)
92+
}
93+
94+
func TestPortConfig_WithOffset_Negative(t *testing.T) {
95+
base := PortConfigForNode(1) // Node 1 has +10000 offset
96+
97+
// Apply -5000 offset
98+
adjusted := base.WithOffset(-5000)
99+
100+
require.Equal(t, 36657-5000, adjusted.RPC)
101+
require.Equal(t, 36656-5000, adjusted.P2P)
102+
}
103+
104+
func TestPortConfig_RPCURL(t *testing.T) {
105+
tests := []struct {
106+
name string
107+
host string
108+
wantURL string
109+
}{
110+
{
111+
name: "empty host defaults to localhost",
112+
host: "",
113+
wantURL: "http://localhost:26657",
114+
},
115+
{
116+
name: "custom host",
117+
host: "192.168.1.100",
118+
wantURL: "http://192.168.1.100:26657",
119+
},
120+
{
121+
name: "hostname",
122+
host: "node.example.com",
123+
wantURL: "http://node.example.com:26657",
124+
},
125+
}
126+
127+
cfg := DefaultPortConfig()
128+
129+
for _, tt := range tests {
130+
t.Run(tt.name, func(t *testing.T) {
131+
url := cfg.RPCURL(tt.host)
132+
require.Equal(t, tt.wantURL, url)
133+
})
134+
}
135+
}
136+
137+
func TestPortConfig_EVMRPCURL(t *testing.T) {
138+
tests := []struct {
139+
name string
140+
host string
141+
wantURL string
142+
}{
143+
{
144+
name: "empty host defaults to localhost",
145+
host: "",
146+
wantURL: "http://localhost:8545",
147+
},
148+
{
149+
name: "custom host",
150+
host: "192.168.1.100",
151+
wantURL: "http://192.168.1.100:8545",
152+
},
153+
}
154+
155+
cfg := DefaultPortConfig()
156+
157+
for _, tt := range tests {
158+
t.Run(tt.name, func(t *testing.T) {
159+
url := cfg.EVMRPCURL(tt.host)
160+
require.Equal(t, tt.wantURL, url)
161+
})
162+
}
163+
}
164+
165+
func TestPortConfig_APIURL(t *testing.T) {
166+
tests := []struct {
167+
name string
168+
host string
169+
wantURL string
170+
}{
171+
{
172+
name: "empty host defaults to localhost",
173+
host: "",
174+
wantURL: "http://localhost:1317",
175+
},
176+
{
177+
name: "custom host",
178+
host: "192.168.1.100",
179+
wantURL: "http://192.168.1.100:1317",
180+
},
181+
}
182+
183+
cfg := DefaultPortConfig()
184+
185+
for _, tt := range tests {
186+
t.Run(tt.name, func(t *testing.T) {
187+
url := cfg.APIURL(tt.host)
188+
require.Equal(t, tt.wantURL, url)
189+
})
190+
}
191+
}
192+
193+
func TestPortConfig_AllPorts(t *testing.T) {
194+
cfg := DefaultPortConfig()
195+
ports := cfg.AllPorts()
196+
197+
// Should return all 10 ports
198+
require.Len(t, ports, 10)
199+
200+
// All ports should be present
201+
require.Contains(t, ports, DefaultRPCPort)
202+
require.Contains(t, ports, DefaultP2PPort)
203+
require.Contains(t, ports, DefaultProxyPort)
204+
require.Contains(t, ports, DefaultGRPCPort)
205+
require.Contains(t, ports, DefaultGRPCWebPort)
206+
require.Contains(t, ports, DefaultAPIPort)
207+
require.Contains(t, ports, DefaultEVMRPCPort)
208+
require.Contains(t, ports, DefaultEVMWSPort)
209+
require.Contains(t, ports, DefaultPProfPort)
210+
require.Contains(t, ports, DefaultRosettaPort)
211+
}
212+
213+
func TestItoa(t *testing.T) {
214+
tests := []struct {
215+
input int
216+
want string
217+
}{
218+
{input: 0, want: "0"},
219+
{input: 1, want: "1"},
220+
{input: 26657, want: "26657"},
221+
{input: 100000, want: "100000"},
222+
{input: -1, want: "-1"},
223+
{input: -26657, want: "-26657"},
224+
}
225+
226+
for _, tt := range tests {
227+
t.Run(tt.want, func(t *testing.T) {
228+
got := itoa(tt.input)
229+
require.Equal(t, tt.want, got)
230+
})
231+
}
232+
}
233+
234+
func TestDefaultPortOffset(t *testing.T) {
235+
// Verify the offset constant is 10000
236+
require.Equal(t, 10000, DefaultPortOffset)
237+
}
238+
239+
func TestPortConstants(t *testing.T) {
240+
// Verify all port constants are correct
241+
require.Equal(t, 26657, DefaultRPCPort)
242+
require.Equal(t, 26656, DefaultP2PPort)
243+
require.Equal(t, 26658, DefaultProxyPort)
244+
require.Equal(t, 9090, DefaultGRPCPort)
245+
require.Equal(t, 9091, DefaultGRPCWebPort)
246+
require.Equal(t, 1317, DefaultAPIPort)
247+
require.Equal(t, 8545, DefaultEVMRPCPort)
248+
require.Equal(t, 8546, DefaultEVMWSPort)
249+
require.Equal(t, 6060, DefaultPProfPort)
250+
require.Equal(t, 8080, DefaultRosettaPort)
251+
}

0 commit comments

Comments
 (0)