1+ package com.coder.toolbox.sdk.v2.models
2+
3+ import kotlin.test.Test
4+ import kotlin.test.assertEquals
5+
6+ class NetworkMetricsTest {
7+
8+ @Test
9+ fun `toPretty should return message for Coder Connect` () {
10+ val metrics = NetworkMetrics (
11+ p2p = null ,
12+ latency = null ,
13+ preferredDerp = null ,
14+ derpLatency = null ,
15+ uploadBytesSec = null ,
16+ downloadBytesSec = null ,
17+ usingCoderConnect = true
18+ )
19+
20+ val expected = " You're connected using Coder Connect"
21+ assertEquals(expected, metrics.toPretty())
22+ }
23+
24+ @Test
25+ fun `toPretty should return message for P2P connection` () {
26+ val metrics = NetworkMetrics (
27+ p2p = true ,
28+ latency = 35.526 ,
29+ preferredDerp = null ,
30+ derpLatency = null ,
31+ uploadBytesSec = null ,
32+ downloadBytesSec = null ,
33+ usingCoderConnect = false
34+ )
35+
36+ val expected = " Direct (35.53ms). You're connected peer-to-peer"
37+ assertEquals(expected, metrics.toPretty())
38+ }
39+
40+ @Test
41+ fun `toPretty should round latency with more than two decimals correctly for P2P` () {
42+ val metrics = NetworkMetrics (
43+ p2p = true ,
44+ latency = 42.6789 ,
45+ preferredDerp = null ,
46+ derpLatency = null ,
47+ uploadBytesSec = null ,
48+ downloadBytesSec = null ,
49+ usingCoderConnect = false
50+ )
51+
52+ val expected = " Direct (42.68ms). You're connected peer-to-peer"
53+ assertEquals(expected, metrics.toPretty())
54+ }
55+
56+ @Test
57+ fun `toPretty should pad latency with one decimal correctly for P2P` () {
58+ val metrics = NetworkMetrics (
59+ p2p = true ,
60+ latency = 12.5 ,
61+ preferredDerp = null ,
62+ derpLatency = null ,
63+ uploadBytesSec = null ,
64+ downloadBytesSec = null ,
65+ usingCoderConnect = false
66+ )
67+
68+ val expected = " Direct (12.50ms). You're connected peer-to-peer"
69+ assertEquals(expected, metrics.toPretty())
70+ }
71+
72+ @Test
73+ fun `toPretty should return message for DERP relay connection` () {
74+ val metrics = NetworkMetrics (
75+ p2p = false ,
76+ latency = 80.0 ,
77+ preferredDerp = " derp1" ,
78+ derpLatency = mapOf (" derp1" to 30.0 ),
79+ uploadBytesSec = null ,
80+ downloadBytesSec = null ,
81+ usingCoderConnect = false
82+ )
83+
84+ val expected = " You ↔ derp1 (30.00ms) ↔ Workspace (50.00ms). You are connected through a relay"
85+ assertEquals(expected, metrics.toPretty())
86+ }
87+
88+ @Test
89+ fun `toPretty should round and pad latencies correctly for DERP` () {
90+ val metrics = NetworkMetrics (
91+ p2p = false ,
92+ latency = 78.1267 ,
93+ preferredDerp = " derp2" ,
94+ derpLatency = mapOf (" derp2" to 23.5 ),
95+ uploadBytesSec = null ,
96+ downloadBytesSec = null ,
97+ usingCoderConnect = false
98+ )
99+
100+ // Total latency: 78.1267
101+ // DERP latency: 23.5 → formatted as 23.50
102+ // Workspace latency: 78.1267 - 23.5 = 54.6267 → formatted as 54.63
103+
104+ val expected = " You ↔ derp2 (23.50ms) ↔ Workspace (54.63ms). You are connected through a relay"
105+ assertEquals(expected, metrics.toPretty())
106+ }
107+ }
0 commit comments