rustauth-core 0.2.0

Core types and primitives for RustAuth.
Documentation
use indexmap::IndexMap;
use rustauth_core::db::{filter_output_fields, DbField, DbFieldType};

#[test]
fn filter_output_fields_removes_hidden_fields() {
    let mut data = IndexMap::new();
    data.insert("id".to_owned(), "account-id".to_owned());
    data.insert("access_token".to_owned(), "secret-access-token".to_owned());

    let mut fields = IndexMap::new();
    fields.insert("id".to_owned(), DbField::new("id", DbFieldType::String));
    fields.insert(
        "access_token".to_owned(),
        DbField::new("access_token", DbFieldType::String).hidden(),
    );

    let filtered = filter_output_fields(&data, &fields);

    assert_eq!(filtered.get("id").map(String::as_str), Some("account-id"));
    assert!(!filtered.contains_key("access_token"));
}

#[test]
fn filter_output_fields_keeps_unknown_fields() {
    let mut data = IndexMap::new();
    data.insert("custom".to_owned(), "value".to_owned());

    let filtered = filter_output_fields(&data, &IndexMap::new());

    assert_eq!(filtered.get("custom").map(String::as_str), Some("value"));
}