Lines
100 %
Functions
Branches
//! Tests for the `Widget` enum (value, display, kind, as_text_mut).
use super::*;
#[test]
fn text_widget_value_and_display_match_buffer() {
let ed = Editor::with_buffer(EditMode::Emacs, "hello");
let w = Widget::Text(ed);
assert_eq!(w.value(), "hello");
assert_eq!(w.display(), "hello");
}
fn text_widget_as_text_mut_returns_some() {
let mut w = Widget::Text(Editor::new(EditMode::Emacs));
assert!(w.as_text_mut().is_some());
fn select_widget_value_is_id_display_is_label() {
let mut sw = SelectWidget::new();
sw.set_options(vec![
SelectOption {
id: "uuid-1".to_string(),
label: "Option One".to_string(),
},
id: "uuid-2".to_string(),
label: "Option Two".to_string(),
]);
let w = Widget::Select(sw);
assert_eq!(w.value(), "uuid-1");
assert_eq!(w.display(), "Option One");
fn select_widget_as_text_mut_returns_none() {
let mut w = Widget::Select(SelectWidget::new());
assert!(w.as_text_mut().is_none());
fn amount_widget_value_and_display_match() {
let aw = AmountWidget::with_value(EditMode::Emacs, "100/3");
let w = Widget::Amount(aw);
assert_eq!(w.value(), "100/3");
assert_eq!(w.display(), "100/3");
fn amount_widget_as_text_mut_returns_some() {
let mut w = Widget::Amount(AmountWidget::new(EditMode::Emacs));
fn date_widget_value_and_display_match() {
let dw = DateWidget::with_value(EditMode::Emacs, "2024-01-01");
let w = Widget::Date(dw);
assert_eq!(w.value(), "2024-01-01");
assert_eq!(w.display(), "2024-01-01");
fn date_widget_as_text_mut_returns_some() {
let mut w = Widget::Date(DateWidget::new(EditMode::Emacs));
fn widget_kind_discriminants() {
assert_eq!(
Widget::Text(Editor::new(EditMode::Emacs)).kind(),
WidgetKind::Text
);
Widget::Select(SelectWidget::new()).kind(),
WidgetKind::Select
Widget::Amount(AmountWidget::new(EditMode::Emacs)).kind(),
WidgetKind::Amount
Widget::Date(DateWidget::new(EditMode::Emacs)).kind(),
WidgetKind::Date
fn text_as_text_mut_exposes_editor_insert() {
w.as_text_mut().expect("editor").insert_char('x');
assert_eq!(w.value(), "x");
fn select_next_and_prev_change_value_and_display() {
id: "a".to_string(),
label: "Alpha".to_string(),
id: "b".to_string(),
label: "Beta".to_string(),
let mut w = Widget::Select(sw);
assert_eq!(w.value(), "a");
if let Widget::Select(ref mut s) = w {
s.next();
assert_eq!(w.value(), "b");
assert_eq!(w.display(), "Beta");
s.prev();