diff --git a/crates/nu-value-ext/src/lib.rs b/crates/nu-value-ext/src/lib.rs index b8ef71dbfd..308dbf0c43 100644 --- a/crates/nu-value-ext/src/lib.rs +++ b/crates/nu-value-ext/src/lib.rs @@ -810,144 +810,3 @@ pub(crate) fn get_mut_data_by_member<'value>( _ => None, } } - -#[cfg(test)] -mod tests { - use super::*; - use nu_test_support::value::*; - - use indexmap::indexmap; - - #[test] - fn forgiving_insertion_test_1() { - let field_path = column_path(&[string("crate"), string("version")]).unwrap(); - - let version = string("nuno"); - - let value = UntaggedValue::row(indexmap! { - "package".into() => - row(indexmap! { - "name".into() => string("nu"), - "version".into() => string("0.20.0") - }) - }); - - assert_eq!( - *value - .into_untagged_value() - .forgiving_insert_data_at_column_path(&field_path, version) - .unwrap() - .get_data_by_column_path(&field_path, Box::new(error_callback("crate.version"))) - .unwrap(), - *string("nuno") - ); - } - - #[test] - fn forgiving_insertion_test_2() { - let field_path = column_path(&[string("things"), int(0)]).unwrap(); - - let version = string("arepas"); - - let value = UntaggedValue::row(indexmap! { - "pivot_mode".into() => string("never"), - "things".into() => table(&[string("frijoles de Andrés"), int(1)]), - "color_config".into() => - row(indexmap! { - "header_align".into() => string("left"), - "index_color".into() => string("cyan_bold") - }) - }); - - assert_eq!( - *value - .into_untagged_value() - .forgiving_insert_data_at_column_path(&field_path, version) - .unwrap() - .get_data_by_column_path(&field_path, Box::new(error_callback("things.0"))) - .unwrap(), - *string("arepas") - ); - } - - #[test] - fn forgiving_insertion_test_3() { - let field_path = column_path(&[string("color_config"), string("arepa_color")]).unwrap(); - let pizza_path = column_path(&[string("things"), int(0)]).unwrap(); - - let entry = string("amarillo"); - - let value = UntaggedValue::row(indexmap! { - "pivot_mode".into() => string("never"), - "things".into() => table(&[string("Arepas de Yehuda"), int(1)]), - "color_config".into() => - row(indexmap! { - "header_align".into() => string("left"), - "index_color".into() => string("cyan_bold") - }) - }); - - assert_eq!( - *value - .clone() - .into_untagged_value() - .forgiving_insert_data_at_column_path(&field_path, entry.clone()) - .unwrap() - .get_data_by_column_path( - &field_path, - Box::new(error_callback("color_config.arepa_color")) - ) - .unwrap(), - *string("amarillo") - ); - - assert_eq!( - *value - .into_untagged_value() - .forgiving_insert_data_at_column_path(&field_path, entry) - .unwrap() - .get_data_by_column_path(&pizza_path, Box::new(error_callback("things.0"))) - .unwrap(), - *string("Arepas de Yehuda") - ); - } - - #[test] - fn get_row_data_by_key() { - let row = row(indexmap! { - "lines".to_string() => int(0), - "words".to_string() => int(7), - }); - assert_eq!( - row.get_data_by_key("lines".spanned_unknown()).unwrap(), - int(0) - ); - assert!(row.get_data_by_key("chars".spanned_unknown()).is_none()); - } - - #[test] - fn get_table_data_by_key() { - let row1 = row(indexmap! { - "lines".to_string() => int(0), - "files".to_string() => int(10), - }); - - let row2 = row(indexmap! { - "files".to_string() => int(1) - }); - - let table_value = table(&[row1, row2]); - assert_eq!( - table_value - .get_data_by_key("files".spanned_unknown()) - .unwrap(), - table(&[int(10), int(1)]) - ); - assert_eq!( - table_value - .get_data_by_key("chars".spanned_unknown()) - .unwrap(), - table(&[nothing(), nothing()]) - ); - } -}