@@ -5,8 +5,8 @@ use pacquet_resolving_resolver_base::{ResolveOptions, Resolver, WantedDependency
55use pretty_assertions:: assert_eq;
66
77use super :: {
8- NodeResolver , NodeResolverError , bin_spec_for_platform, parse_node_file_name ,
9- read_node_assets_from_mirror,
8+ NodeResolver , NodeResolverError , bin_spec_for_platform,
9+ normalize_node_runtime_version_specifier , parse_node_file_name , read_node_assets_from_mirror,
1010} ;
1111
1212fn resolver ( ) -> NodeResolver {
@@ -105,6 +105,27 @@ fn bin_spec_is_a_named_map() {
105105 ) ;
106106}
107107
108+ #[ test]
109+ fn normalized_runtime_spec_preserves_version_prefix ( ) {
110+ let cases = [
111+ ( "22" , None , "22.11.0" ) ,
112+ ( "^22" , None , "^22.11.0" ) ,
113+ ( "22" , Some ( "runtime:~22.0.0" ) , "~22.11.0" ) ,
114+ ( "^22" , Some ( "runtime:22.0.0" ) , "22.11.0" ) ,
115+ ( "rc/^22" , None , "^22.11.0" ) ,
116+ ( "22" , Some ( "runtime:^22.0.0-rc.0" ) , "^22.11.0" ) ,
117+ ] ;
118+ for ( version_spec, prev_specifier, expected) in cases {
119+ assert_eq ! (
120+ normalize_node_runtime_version_specifier( version_spec, "22.11.0" , prev_specifier) ,
121+ expected,
122+ "version_spec={version_spec:?}, prev_specifier={prev_specifier:?}" ,
123+ ) ;
124+ }
125+
126+ assert_eq ! ( normalize_node_runtime_version_specifier( "^22" , "22.0.0-rc.0" , None ) , "22.0.0-rc.0" ) ;
127+ }
128+
108129#[ tokio:: test]
109130async fn release_asset_reader_requires_signature_when_requested ( ) {
110131 let mut server = mockito:: Server :: new_async ( ) . await ;
0 commit comments