eazygit 0.5.1

A fast TUI for Git with staging, conflicts, rebase, and palette-first UX
Documentation
use crate::config::Settings;
use crate::config::settings::{CoreConfig, DiffConfig, UiConfig};
// Mocking the merge behavior since we can't easily load files in unit tests without fixtures.
// We will test the struct merging logic manually if possible, or verify default values.

#[test]
fn test_settings_defaults() {
    let settings = Settings::default();
    
    // Check core defaults
    assert_eq!(settings.core.auto_fetch, true);
    assert_eq!(settings.core.pull_autostash, true);
    
    // Check UI defaults
    assert_eq!(settings.ui.theme, "default_dark");
    assert_eq!(settings.ui.show_help_footer, true);
}

#[test]
fn test_core_config_defaults() {
    let core = CoreConfig::default();
    assert_eq!(core.pull_timeout_secs, 30);
    assert_eq!(core.rebase_timeout_secs, 30);
}

#[test]
fn test_diff_config_defaults() {
    let diff = DiffConfig::default();
    assert_eq!(diff.context_lines, 3);
}