snora-widgets 0.23.0

Optional prefab iced widgets for the Snora GUI framework — header, footer, sidebar, menu, icon.
Documentation
use super::*;
use snora_design::Tokens;

#[test]
fn chip_style_selected_all_statuses_all_presets() {
    let statuses = [
        button::Status::Active,
        button::Status::Hovered,
        button::Status::Pressed,
        button::Status::Disabled,
    ];
    for t in [
        Tokens::light(), Tokens::dark(),
        Tokens::high_contrast_light(), Tokens::high_contrast_dark(),
    ] {
        for s in statuses {
            let style = chip_style_selected(&t, s);
            assert!(style.background.is_some(), "selected {s:?}: background must be set");
        }
    }
}

#[test]
fn chip_style_unselected_all_statuses_all_presets() {
    let statuses = [
        button::Status::Active,
        button::Status::Hovered,
        button::Status::Pressed,
        button::Status::Disabled,
    ];
    for t in [
        Tokens::light(), Tokens::dark(),
        Tokens::high_contrast_light(), Tokens::high_contrast_dark(),
    ] {
        for s in statuses {
            let style = chip_style_unselected(&t, s);
            assert!(style.background.is_some(), "unselected {s:?}: background must be set");
        }
    }
}

#[test]
fn selected_has_accent_text_color() {
    let t = Tokens::light();
    let style = chip_style_selected(&t, button::Status::Active);
    let expected = style::color::to_iced_color(t.palette.accent);
    assert_eq!(style.text_color, expected);
}

#[test]
fn darken_clamps_to_zero() {
    let black = darken(iced::Color::BLACK, 1.0);
    assert!(black.r >= 0.0 && black.g >= 0.0 && black.b >= 0.0);
}