@@ -199,6 +199,58 @@ fn default_relay_selector() -> RelaySelector {
199
199
RelaySelector :: from_list ( SelectorConfig :: default ( ) , RELAYS . clone ( ) )
200
200
}
201
201
202
+ /// This is not an actual test. Rather, it serves as a reminder that if [`RETRY_ORDER`] is modified,
203
+ /// the programmer should be made aware to update all external documents which rely on the retry order
204
+ /// to be correct.
205
+ ///
206
+ /// When all necessary changes have been made, feel free to update this test to mirror the new [`RETRY_ORDER`].
207
+ #[ test]
208
+ fn assert_retry_order ( ) {
209
+ use talpid_types:: net:: { IpVersion , TransportProtocol } ;
210
+ let expected_retry_order = vec ! [
211
+ // 0
212
+ RelayQueryBuilder :: new( ) . build( ) ,
213
+ // 1
214
+ RelayQueryBuilder :: new( ) . wireguard( ) . build( ) ,
215
+ // 2
216
+ RelayQueryBuilder :: new( ) . wireguard( ) . port( 443 ) . build( ) ,
217
+ // 3
218
+ RelayQueryBuilder :: new( )
219
+ . wireguard( )
220
+ . ip_version( IpVersion :: V6 )
221
+ . build( ) ,
222
+ // 4
223
+ RelayQueryBuilder :: new( )
224
+ . openvpn( )
225
+ . transport_protocol( TransportProtocol :: Tcp )
226
+ . port( 443 )
227
+ . build( ) ,
228
+ // 5
229
+ RelayQueryBuilder :: new( ) . wireguard( ) . udp2tcp( ) . build( ) ,
230
+ // 6
231
+ RelayQueryBuilder :: new( )
232
+ . wireguard( )
233
+ . udp2tcp( )
234
+ . ip_version( IpVersion :: V6 )
235
+ . build( ) ,
236
+ // 7
237
+ RelayQueryBuilder :: new( )
238
+ . openvpn( )
239
+ . transport_protocol( TransportProtocol :: Tcp )
240
+ . bridge( )
241
+ . build( ) ,
242
+ ] ;
243
+
244
+ assert ! (
245
+ * RETRY_ORDER == expected_retry_order,
246
+ "
247
+ The relay selector's retry order has been modified!
248
+ Make sure to update `docs/relay-selector.md` with these changes.
249
+ Lastly, you may go ahead and fix this test to reflect the new retry order.
250
+ "
251
+ ) ;
252
+ }
253
+
202
254
/// Test whether the relay selector seems to respect the order as defined by [`RETRY_ORDER`].
203
255
#[ test]
204
256
fn test_retry_order ( ) {
0 commit comments