(t *testing.T)
| 165 | } |
| 166 | |
| 167 | func TestExtractDERPLatency(t *testing.T) { |
| 168 | t.Parallel() |
| 169 | |
| 170 | derpMap := &tailcfg.DERPMap{ |
| 171 | Regions: map[int]*tailcfg.DERPRegion{ |
| 172 | 1: { |
| 173 | RegionID: 1, |
| 174 | RegionName: "Region One", |
| 175 | Nodes: []*tailcfg.DERPNode{ |
| 176 | {Name: "node1", RegionID: 1}, |
| 177 | }, |
| 178 | }, |
| 179 | 2: { |
| 180 | RegionID: 2, |
| 181 | RegionName: "Region Two", |
| 182 | Nodes: []*tailcfg.DERPNode{ |
| 183 | {Name: "node2", RegionID: 2}, |
| 184 | }, |
| 185 | }, |
| 186 | }, |
| 187 | } |
| 188 | |
| 189 | t.Run("Basic", func(t *testing.T) { |
| 190 | t.Parallel() |
| 191 | node := &tailnet.Node{ |
| 192 | DERPLatency: map[string]float64{ |
| 193 | "1-node1": 0.05, |
| 194 | "2-node2": 0.1, |
| 195 | }, |
| 196 | } |
| 197 | latencyMs := tailnet.ExtractDERPLatency(node, derpMap) |
| 198 | require.EqualValues(t, 50, latencyMs["Region One"].Milliseconds()) |
| 199 | require.EqualValues(t, 100, latencyMs["Region Two"].Milliseconds()) |
| 200 | require.Len(t, latencyMs, 2) |
| 201 | }) |
| 202 | |
| 203 | t.Run("UnknownRegion", func(t *testing.T) { |
| 204 | t.Parallel() |
| 205 | node := &tailnet.Node{ |
| 206 | DERPLatency: map[string]float64{ |
| 207 | "999-node999": 0.2, |
| 208 | }, |
| 209 | } |
| 210 | latencyMs := tailnet.ExtractDERPLatency(node, derpMap) |
| 211 | require.EqualValues(t, 200, latencyMs["Unnamed 999"].Milliseconds()) |
| 212 | require.Len(t, latencyMs, 1) |
| 213 | }) |
| 214 | |
| 215 | t.Run("InvalidRegionFormat", func(t *testing.T) { |
| 216 | t.Parallel() |
| 217 | node := &tailnet.Node{ |
| 218 | DERPLatency: map[string]float64{ |
| 219 | "invalid": 0.3, |
| 220 | "1-node1": 0.05, |
| 221 | "abc-node": 0.15, |
| 222 | }, |
| 223 | } |
| 224 | latencyMs := tailnet.ExtractDERPLatency(node, derpMap) |
nothing calls this directly
no test coverage detected