Lines
97.06 %
Functions
100 %
Branches
//! Tests for the overlay stack.
use super::*;
use crate::form::Form;
use crate::modal::Modal;
use crate::widgets::EditMode;
fn a_config_set_form() -> Modal {
Modal::Form(Form::config_set(
crate::widgets::Editor::new(EditMode::Emacs),
))
}
#[test]
fn empty_stack_has_no_top() {
let stack = OverlayStack::new();
assert!(stack.is_empty());
assert!(stack.top().is_none());
fn push_then_pop_yields_last_in_first_out() {
let mut stack = OverlayStack::new();
stack.push(Modal::Help);
stack.push(a_config_set_form());
let popped = stack.pop().expect("expected a modal");
assert!(matches!(popped, Modal::Form(_)));
assert!(matches!(stack.top(), Some(Modal::Help)));
assert!(!stack.is_empty());
fn pop_on_empty_returns_none() {
assert!(stack.pop().is_none());
fn top_mut_allows_mutating_focus_field() {
if let Some(Modal::Form(f)) = stack.top_mut() {
f.focus = 1;
match stack.top() {
Some(Modal::Form(f)) => assert_eq!(f.focus, 1),
_ => panic!("expected Form modal"),