rustauth-plugins 0.2.0

Official RustAuth plugin modules.
Documentation
use rustauth_core::context::create_auth_context;
use rustauth_core::options::RustAuthOptions;
use rustauth_plugins::username::UsernameOptions;

#[test]
fn username_plugin_registers_schema_and_errors() -> Result<(), Box<dyn std::error::Error>> {
    let context = create_auth_context(RustAuthOptions {
        plugins: vec![rustauth_plugins::username::username(
            UsernameOptions::default(),
        )],
        secret: Some("secret-a-at-least-32-chars-long!!".to_owned()),
        ..RustAuthOptions::default()
    })?;

    let username = context.db_schema.field("user", "username")?;
    assert_eq!(username.name, "username");
    assert!(!username.required);
    assert!(username.unique);
    assert!(username.returned);

    let display_username = context.db_schema.field("user", "display_username")?;
    assert_eq!(display_username.name, "display_username");
    assert!(!display_username.required);
    assert!(display_username.returned);

    assert_eq!(
        context
            .plugin_error_codes
            .get("INVALID_USERNAME_OR_PASSWORD")
            .map(|code| code.message.as_str()),
        Some("Invalid username or password")
    );
    Ok(())
}