Skip to content

Commit

Permalink
Remove io2fmt_write test and update ListNodeReport fields accessibility
Browse files Browse the repository at this point in the history
The io2fmt_write test file has been removed due to redundancy. In the 'ListNodeReport' struct, the access level of the fields has been changed to public. It also includes the refactoring of assertions in 'endpoints/list.rs' test file for better functionality checks.
  • Loading branch information
Barsik-sus committed Feb 13, 2024
1 parent c902e2c commit 45ceda5
Show file tree
Hide file tree
Showing 4 changed files with 111 additions and 43 deletions.
12 changes: 6 additions & 6 deletions module/move/willbe/src/endpoint/list.rs
Original file line number Diff line number Diff line change
Expand Up @@ -159,12 +159,12 @@ mod private
#[ derive( Debug, Clone ) ]
pub struct ListNodeReport
{
name: String,
version: Option< String >,
path: Option< PathBuf >,
normal_dependencies: Vec< ListNodeReport >,
dev_dependencies: Vec< ListNodeReport >,
build_dependencies: Vec< ListNodeReport >,
pub name: String,
pub version: Option< String >,
pub path: Option< PathBuf >,
pub normal_dependencies: Vec< ListNodeReport >,
pub dev_dependencies: Vec< ListNodeReport >,
pub build_dependencies: Vec< ListNodeReport >,
}

impl ListNodeReport
Expand Down
119 changes: 105 additions & 14 deletions module/move/willbe/tests/inc/endpoints/list.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
use std::path::Path;
use super::*;
use assert_fs::prelude::*;
use TheModule::endpoint::{ self, list::* };
Expand All @@ -9,7 +8,7 @@ const ASSETS_PATH : &str = "tests/assets";

//

fn crate_dir( path : &Path ) -> CrateDir
fn crate_dir( path : &std::path::Path ) -> CrateDir
{
let absolut = AbsolutePath::try_from( path ).unwrap();
CrateDir::try_from( absolut ).unwrap()
Expand Down Expand Up @@ -48,12 +47,29 @@ mod chain_of_three_packages
let output = endpoint::list( args ).unwrap();

// Assert
let ListReport::Tree { graph, names } = &output else { panic!( "Expected `Tree` format, but found another" ) };
let ListReport::Tree( trees ) = &output else { panic!( "Expected `Tree` format, but found another" ) };

assert_eq!( 3, graph.node_count() );
assert_eq!( 2, graph.edge_count() );
assert_eq!( 1, names.len() );
assert_eq!( Some( "_chain_of_packages_a" ), graph.node_weight( names[ 0 ] ).map( | x | x.as_str() ) );
assert_eq!( 1, trees.len() );
let tree = &trees[ 0 ];
assert_eq!( "_chain_of_packages_a", tree.name.as_str() );

assert_eq!( 1, tree.normal_dependencies.len() );
assert!( tree.dev_dependencies.is_empty() );
assert!( tree.build_dependencies.is_empty() );

let sub_tree = &tree.normal_dependencies[ 0 ];
assert_eq!( "_chain_of_packages_b", sub_tree.name.as_str() );

assert_eq!( 1, sub_tree.normal_dependencies.len() );
assert!( sub_tree.dev_dependencies.is_empty() );
assert!( sub_tree.build_dependencies.is_empty() );

let mega_sub_tree = &sub_tree.normal_dependencies[ 0 ];
assert_eq!( "_chain_of_packages_c", mega_sub_tree.name.as_str() );

assert!( mega_sub_tree.normal_dependencies.is_empty() );
assert!( mega_sub_tree.dev_dependencies.is_empty() );
assert!( mega_sub_tree.build_dependencies.is_empty() );
}

#[ test ]
Expand Down Expand Up @@ -132,12 +148,26 @@ mod package_with_remote_dependency
let output = endpoint::list( args ).unwrap();

// Assert
let ListReport::Tree { graph, names } = &output else { panic!( "Expected `Tree` format, but found another" ) };

assert_eq!( 3, graph.node_count() );
assert_eq!( 2, graph.edge_count() );
assert_eq!( 1, names.len() );
assert_eq!( Some( "_package_with_remote_dep_a" ), graph.node_weight( names[ 0 ] ).map( | x | x.as_str() ) );
let ListReport::Tree( trees ) = &output else { panic!( "Expected `Tree` format, but found another" ) };

assert_eq!( 1, trees.len() );
let tree = &trees[ 0 ];
assert_eq!( "_package_with_remote_dep_a", tree.name.as_str() );

assert_eq!( 2, tree.normal_dependencies.len() );
assert!( tree.dev_dependencies.is_empty() );
assert!( tree.build_dependencies.is_empty() );

let [ sub_tree_1, sub_tree_2, .. ] = tree.normal_dependencies.as_slice() else { unreachable!() };
assert_eq!( "_package_with_remote_dep_b", sub_tree_1.name.as_str() );
assert!( sub_tree_1.normal_dependencies.is_empty() );
assert!( sub_tree_1.dev_dependencies.is_empty() );
assert!( sub_tree_1.build_dependencies.is_empty() );

assert_eq!( "foo", sub_tree_2.name.as_str() );
assert!( sub_tree_2.normal_dependencies.is_empty() );
assert!( sub_tree_2.dev_dependencies.is_empty() );
assert!( sub_tree_2.build_dependencies.is_empty() );
}

#[ test ]
Expand Down Expand Up @@ -192,6 +222,67 @@ mod workspace_with_cyclic_dependency
{
use super::*;

#[ test ]
fn tree_format()
{
// Arrange
let root_path = std::path::Path::new( env!( "CARGO_MANIFEST_DIR" ) );
let assets_relative_path = std::path::Path::new( ASSETS_PATH );
let assets_path = root_path.join( assets_relative_path );

let temp = assert_fs::TempDir::new().unwrap();
temp.copy_from( assets_path.join( "workspace_with_cyclic_dependency" ), &[ "**" ] ).unwrap();

let args = ListArgs::former()
.path_to_manifest( crate_dir( &temp.join( "a" ) ) )
.format( ListFormat::Tree )
.info([ PackageAdditionalInfo::Version ])
.dependency_sources([ DependencySource::Local, DependencySource::Remote ])
.dependency_categories([ DependencyCategory::Primary, DependencyCategory::Dev ])
.form();

// Act
let output = endpoint::list( args ).unwrap();

// Assert
let ListReport::Tree( trees ) = &output else { panic!( "Expected `Tree` format, but found another" ) };
dbg!( trees );

assert_eq!( 1, trees.len() );
let tree = &trees[ 0 ];
assert_eq!( "_workspace_with_cyclic_dep_a", tree.name.as_str() );
assert_eq!( "0.1.0", tree.version.as_ref().unwrap().as_str() );

assert_eq!( 1, tree.normal_dependencies.len() );
assert!( tree.dev_dependencies.is_empty() );
assert!( tree.build_dependencies.is_empty() );

let sub_tree = &tree.normal_dependencies[ 0 ];
assert_eq!( "_workspace_with_cyclic_dep_b", sub_tree.name.as_str() );
assert_eq!( "*", sub_tree.version.as_ref().unwrap().as_str() );

assert_eq!( 1, sub_tree.normal_dependencies.len() );
assert!( sub_tree.dev_dependencies.is_empty() );
assert!( sub_tree.build_dependencies.is_empty() );

let mega_sub_tree = &sub_tree.normal_dependencies[ 0 ];
assert_eq!( "_workspace_with_cyclic_dep_a", mega_sub_tree.name.as_str() );
assert_eq!( "*", mega_sub_tree.version.as_ref().unwrap().as_str() );

assert_eq!( 1, mega_sub_tree.normal_dependencies.len() );
assert!( mega_sub_tree.dev_dependencies.is_empty() );
assert!( mega_sub_tree.build_dependencies.is_empty() );

// (*) - means duplication
let ultra_sub_tree = &mega_sub_tree.normal_dependencies[ 0 ];
assert_eq!( "_workspace_with_cyclic_dep_b (*)", ultra_sub_tree.name.as_str() );
assert_eq!( "*", ultra_sub_tree.version.as_ref().unwrap().as_str() );

assert!( ultra_sub_tree.normal_dependencies.is_empty() );
assert!( ultra_sub_tree.dev_dependencies.is_empty() );
assert!( ultra_sub_tree.build_dependencies.is_empty() );
}

#[ test ]
fn can_not_show_list_with_cyclic_dependencies()
{
Expand All @@ -205,7 +296,7 @@ mod workspace_with_cyclic_dependency

let args = ListArgs::former()
.path_to_manifest( crate_dir( &temp.join( "a" ) ) )
.format( ListFormat::Tree )
.format( ListFormat::Topological )
.dependency_sources([ DependencySource::Local, DependencySource::Remote ])
.dependency_categories([ DependencyCategory::Primary, DependencyCategory::Dev ])
.form();
Expand Down
22 changes: 0 additions & 22 deletions module/move/willbe/tests/inc/io2fmt_write.rs

This file was deleted.

1 change: 0 additions & 1 deletion module/move/willbe/tests/inc/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,5 @@ mod endpoints;
mod publish_need;
mod query;
mod version;
mod io2fmt_write;
mod graph;

0 comments on commit 45ceda5

Please sign in to comment.