Files
ELY-Browser/crates/ely_browser_core/tests/appearance.rs
T
ZacharyZhang-NY 53dc40986a Wire AppearanceSettings into BrowserCore + snapshot
BrowserCore now owns an AppearanceSettings, exposes it through
BrowserSnapshot.appearance, and offers set_wallpaper_theme,
set_theme_mode, set_reduce_motion, reset_appearance mutators. Defaults
match the domain defaults (Dawn / System / motion-on) so existing
behaviour is unchanged for callers who don't touch appearance.

Integration tests cover initial snapshot defaults, mutation persistence
across snapshots, and reset behaviour.
2026-05-09 18:48:10 -04:00

47 lines
1.6 KiB
Rust

use std::error::Error;
use ely_browser_core::{BrowserCore, InitialBrowserConfig};
use ely_domain::{ThemeMode, WallpaperTheme};
#[test]
fn snapshot_starts_with_default_appearance() -> Result<(), Box<dyn Error>> {
let core = BrowserCore::new(InitialBrowserConfig::ely_defaults()?)?;
let snapshot = core.snapshot()?;
assert_eq!(snapshot.appearance.wallpaper(), WallpaperTheme::Dawn);
assert_eq!(snapshot.appearance.theme_mode(), ThemeMode::System);
assert!(!snapshot.appearance.reduce_motion());
Ok(())
}
#[test]
fn setters_persist_into_subsequent_snapshots() -> Result<(), Box<dyn Error>> {
let mut core = BrowserCore::new(InitialBrowserConfig::ely_defaults()?)?;
core.set_wallpaper_theme(WallpaperTheme::Mint);
core.set_theme_mode(ThemeMode::Dark);
core.set_reduce_motion(true);
let snapshot = core.snapshot()?;
assert_eq!(snapshot.appearance.wallpaper(), WallpaperTheme::Mint);
assert_eq!(snapshot.appearance.theme_mode(), ThemeMode::Dark);
assert!(snapshot.appearance.reduce_motion());
Ok(())
}
#[test]
fn reset_appearance_restores_defaults() -> Result<(), Box<dyn Error>> {
let mut core = BrowserCore::new(InitialBrowserConfig::ely_defaults()?)?;
core.set_wallpaper_theme(WallpaperTheme::Slate);
core.set_theme_mode(ThemeMode::Light);
core.set_reduce_motion(true);
core.reset_appearance();
let snapshot = core.snapshot()?;
assert_eq!(snapshot.appearance.wallpaper(), WallpaperTheme::Dawn);
assert_eq!(snapshot.appearance.theme_mode(), ThemeMode::System);
assert!(!snapshot.appearance.reduce_motion());
Ok(())
}