X-Git-Url: http://git.scottworley.com/tablify/blobdiff_plain/f93f5541f591c6b0f9a9f0091eebd20b363ebb42..e3feb9dc125d96673d3947c925dd7f1986e16416:/src/lib.rs diff --git a/src/lib.rs b/src/lib.rs index 0873f2e..88c6d8c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -359,7 +359,7 @@ fn render_row(config: &Config, columns: &[String], rowlike: &mut Rowlike) -> HTM } } -fn column_header_order<'a>( +fn column_header_labels<'a>( config: &'a Config, columns: &'a [String], ) -> impl Iterator> { @@ -373,7 +373,7 @@ fn column_header_order<'a>( fn render_column_headers(config: &Config, columns: &[String]) -> HTML { HTML( String::from(r#""#) - + &column_header_order(config, columns).fold(String::new(), |mut acc, ocol| { + + &column_header_labels(config, columns).fold(String::new(), |mut acc, ocol| { match ocol { Some(col) => { let col_header = HTML::escape(col); @@ -595,6 +595,30 @@ mod tests { ); } + #[test] + fn test_column_header_labels() { + let mut cfg = Config::default(); + + assert!(column_header_labels(&cfg, &["foo".to_owned()]).eq([Some(&"foo".to_owned())])); + + cfg.static_columns.push(Some("bar".to_owned())); + assert!(column_header_labels(&cfg, &["foo".to_owned()]) + .eq([Some(&"bar".to_owned()), Some(&"foo".to_owned())])); + + cfg.static_columns.push(None); + assert!(column_header_labels(&cfg, &["foo".to_owned()]).eq([ + Some(&"bar".to_owned()), + None, + Some(&"foo".to_owned()) + ])); + + cfg.hidden_columns.insert("foo".to_owned()); + assert!(column_header_labels(&cfg, &["foo".to_owned()]).eq([Some(&"bar".to_owned()), None])); + + cfg.hidden_columns.insert("bar".to_owned()); + assert!(column_header_labels(&cfg, &["foo".to_owned()]).eq([None])); + } + #[test] fn test_render_cell() { assert_eq!(