]> git.scottworley.com Git - tablify/blobdiff - src/lib.rs
Rename column_header_order → column_header_labels
[tablify] / src / lib.rs
index 0873f2e346f9ac79c1cd0363b795c01ab193aead..88c6d8c16f0c082b0d14ba111a90b9aad937b083 100644 (file)
@@ -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<Item = Option<&'a String>> {
     config: &'a Config,
     columns: &'a [String],
 ) -> impl Iterator<Item = Option<&'a String>> {
@@ -373,7 +373,7 @@ fn column_header_order<'a>(
 fn render_column_headers(config: &Config, columns: &[String]) -> HTML {
     HTML(
         String::from(r#"<tr class="key"><th></th>"#)
 fn render_column_headers(config: &Config, columns: &[String]) -> HTML {
     HTML(
         String::from(r#"<tr class="key"><th></th>"#)
-            + &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);
                 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!(
     #[test]
     fn test_render_cell() {
         assert_eq!(