use nu_test_support::fs::Stub::FileWithContentToBeTrimmed; use nu_test_support::playground::Playground; use nu_test_support::{nu, pipeline}; #[test] fn moves_a_column_before() { Playground::setup("move_column_test_1", |dirs, sandbox| { sandbox.with_files(vec![FileWithContentToBeTrimmed( "sample.csv", r#" column1,column2,column3,...,column98,column99,column100 -------,-------,-------,---,--------, A ,--------- -------,-------,-------,---,--------, N ,--------- -------,-------,-------,---,--------, D ,--------- -------,-------,-------,---,--------, R ,--------- -------,-------,-------,---,--------, E ,--------- -------,-------,-------,---,--------, S ,--------- "#, )]); let actual = nu!( cwd: dirs.test(), pipeline( r#" open sample.csv | move column99 --before column1 | rename chars | get chars | str trim | str join "# )); assert!(actual.out.contains("ANDRES")); }) } #[test] fn moves_columns_before() { Playground::setup("move_column_test_2", |dirs, sandbox| { sandbox.with_files(vec![FileWithContentToBeTrimmed( "sample.csv", r#" column1,column2,column3,...,column98,column99,column100 -------,-------, A ,---,--------, N ,--------- -------,-------, D ,---,--------, R ,--------- -------,-------, E ,---,--------, S ,--------- -------,-------, : ,---,--------, : ,--------- -------,-------, J ,---,--------, T ,--------- "#, )]); let actual = nu!( cwd: dirs.test(), pipeline( r#" open sample.csv | move column99 column3 --before column2 | rename _ chars_1 chars_2 | select chars_2 chars_1 | upsert new_col {|f| $f | transpose | get column1 | str trim | str join} | get new_col | str join "# )); assert!(actual.out.contains("ANDRES::JT")); }) } #[test] fn moves_a_column_after() { Playground::setup("move_column_test_3", |dirs, sandbox| { sandbox.with_files(vec![FileWithContentToBeTrimmed( "sample.csv", r#" column1,column2,letters,...,column98,and_more,column100 -------,-------, A ,---,--------, N ,--------- -------,-------, D ,---,--------, R ,--------- -------,-------, E ,---,--------, S ,--------- -------,-------, : ,---,--------, : ,--------- -------,-------, J ,---,--------, T ,--------- "#, )]); let actual = nu!( cwd: dirs.test(), pipeline( r#" open sample.csv | move letters --after and_more | move letters and_more --before column2 | rename _ chars_1 chars_2 | select chars_1 chars_2 | upsert new_col {|f| $f | transpose | get column1 | str trim | str join} | get new_col | str join "# )); assert!(actual.out.contains("ANDRES::JT")); }) } #[test] fn moves_columns_after() { Playground::setup("move_column_test_4", |dirs, sandbox| { sandbox.with_files(vec![FileWithContentToBeTrimmed( "sample.csv", r#" column1,column2,letters,...,column98,and_more,column100 -------,-------, A ,---,--------, N ,--------- -------,-------, D ,---,--------, R ,--------- -------,-------, E ,---,--------, S ,--------- -------,-------, : ,---,--------, : ,--------- -------,-------, J ,---,--------, T ,--------- "#, )]); let actual = nu!( cwd: dirs.test(), pipeline( r#" open sample.csv | move letters and_more --after column1 | columns | select 1 2 | str join "# )); assert!(actual.out.contains("lettersand_more")); }) }