File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -28,9 +28,9 @@ env_logger = "0.11"
2828globwalk = " 0.9.1"
2929anyhow = " 1.0.102"
3030pathdiff = " 0.2.3"
31- cargo-manifest = " 0.20 .0"
31+ cargo-manifest = " 0.21 .0"
3232fs-err = " 3.3.0"
33- toml = { version = " 1.0 " , features = [" preserve_order" ] }
33+ toml = { version = " 1.1 " , features = [" preserve_order" ] }
3434expect-test = " 1.5.1"
3535guppy = " 0.17"
3636
Original file line number Diff line number Diff line change @@ -461,3 +461,70 @@ workspace = true
461461 }
462462 }
463463}
464+
465+ #[ test]
466+ pub fn test_toml_v1_1 ( ) {
467+ // Arrange
468+ let project = CargoWorkspace :: new ( )
469+ . manifest (
470+ "." ,
471+ r#"
472+ [package]
473+ name = "test-dummy"
474+ version = "0.1.0"
475+ edition = "2018"
476+
477+ [dependencies]
478+ reqwest = {
479+ version = "0.13",
480+ default-features = false,
481+ features = [
482+ "json",
483+ ]
484+ }
485+
486+ "# ,
487+ )
488+ . touch ( "src/main.rs" )
489+ . build ( ) ;
490+
491+ // Act
492+ let skeleton = Skeleton :: derive ( project. path ( ) , None ) . unwrap ( ) ;
493+
494+ // Assert
495+ assert_eq ! ( 1 , skeleton. manifests. len( ) ) ;
496+
497+ let manifest = & skeleton. manifests [ 0 ] ;
498+ let parsed: toml:: Value = toml:: from_str ( & manifest. contents ) . unwrap ( ) ;
499+
500+ let reqwest = parsed
501+ . get ( "dependencies" )
502+ . and_then ( |deps| deps. get ( "reqwest" ) )
503+ . expect ( "Expected to find reqwest dependency in manifest" )
504+ . as_table ( )
505+ . expect ( "Expected reqwest dependency to be a table" ) ;
506+ assert_eq ! (
507+ reqwest. get( "version" ) . and_then( |v| v. as_str( ) ) ,
508+ Some ( "0.13" ) ,
509+ "Expected reqwest version to be '0.13' (TOML 1.1 multiline inline table)"
510+ ) ;
511+
512+ assert_eq ! (
513+ reqwest. get( "default-features" ) . and_then( |v| v. as_bool( ) ) ,
514+ Some ( false ) ,
515+ "Expected reqwest default-features to be false"
516+ ) ;
517+
518+ let features = reqwest
519+ . get ( "features" )
520+ . expect ( "Expected to find features in reqwest dependency" )
521+ . as_array ( )
522+ . expect ( "Expected features to be an array" ) ;
523+
524+ let feature_names: Vec < & str > = features. iter ( ) . filter_map ( |f| f. as_str ( ) ) . collect ( ) ;
525+ assert_eq ! (
526+ feature_names,
527+ vec![ "json" ] ,
528+ "Expected features to contain exactly 'json' from TOML 1.1 multiline inline table"
529+ ) ;
530+ }
You can’t perform that action at this time.
0 commit comments