use settings::Setting; use warpui::{App, SingletonEntity}; use super::*; use crate::test_util::settings::initialize_settings_for_tests; use crate::workspace::header_toolbar_item::HeaderToolbarItemKind; #[test] fn use_latest_user_prompt_as_conversation_title_in_tab_names_defaults_to_false() { App::test((), |mut app| async move { initialize_settings_for_tests(&mut app); TabSettings::handle(&app).read(&app, |settings, _ctx| { assert!(!*settings.use_latest_user_prompt_as_conversation_title_in_tab_names); }); }); } #[test] fn use_latest_user_prompt_as_conversation_title_in_tab_names_uses_vertical_tabs_path() { assert_eq!( UseLatestUserPromptAsConversationTitleInTabNames::toml_path(), Some("appearance.vertical_tabs.use_latest_prompt_as_title") ); assert_eq!( UseLatestUserPromptAsConversationTitleInTabNames::hierarchy(), Some("appearance.vertical_tabs") ); assert_eq!( UseLatestUserPromptAsConversationTitleInTabNames::toml_key(), "use_latest_prompt_as_title" ); } #[test] fn show_vertical_tab_panel_in_restored_windows_defaults_to_false() { App::test((), |mut app| async move { initialize_settings_for_tests(&mut app); TabSettings::handle(&app).read(&app, |settings, _ctx| { assert!(!*settings.show_vertical_tab_panel_in_restored_windows); }); }); } #[test] fn show_vertical_tab_panel_in_restored_windows_uses_vertical_tabs_path() { assert_eq!( ShowVerticalTabPanelInRestoredWindows::toml_path(), Some("appearance.vertical_tabs.show_panel_in_restored_windows") ); assert_eq!( ShowVerticalTabPanelInRestoredWindows::hierarchy(), Some("appearance.vertical_tabs") ); assert_eq!( ShowVerticalTabPanelInRestoredWindows::toml_key(), "show_panel_in_restored_windows" ); } #[test] fn hide_title_bar_search_bar_in_vertical_tabs_defaults_to_false() { App::test((), |mut app| async move { initialize_settings_for_tests(&mut app); TabSettings::handle(&app).read(&app, |settings, _ctx| { assert!(!*settings.hide_title_bar_search_bar_in_vertical_tabs); }); }); } #[test] fn hide_title_bar_search_bar_in_vertical_tabs_uses_vertical_tabs_path() { assert_eq!( HideTitleBarSearchBarInVerticalTabs::toml_path(), Some("appearance.vertical_tabs.hide_title_bar_search_bar") ); assert_eq!( HideTitleBarSearchBarInVerticalTabs::hierarchy(), Some("appearance.vertical_tabs") ); assert_eq!( HideTitleBarSearchBarInVerticalTabs::toml_key(), "hide_title_bar_search_bar" ); } #[test] fn header_toolbar_chip_selection_default_contains_code_review() { let config = HeaderToolbarChipSelection::Default; assert!(config.contains_item(&HeaderToolbarItemKind::CodeReview)); } #[test] fn header_toolbar_chip_selection_custom_without_code_review_reports_absent() { let config = HeaderToolbarChipSelection::Custom { left: vec![ HeaderToolbarItemKind::TabsPanel, HeaderToolbarItemKind::ToolsPanel, ], right: vec![HeaderToolbarItemKind::NotificationsMailbox], }; assert!(!config.contains_item(&HeaderToolbarItemKind::CodeReview)); assert!(config.contains_item(&HeaderToolbarItemKind::TabsPanel)); assert!(config.contains_item(&HeaderToolbarItemKind::ToolsPanel)); assert!(config.contains_item(&HeaderToolbarItemKind::NotificationsMailbox)); assert!(!config.contains_item(&HeaderToolbarItemKind::AgentManagement)); } #[test] fn header_toolbar_chip_selection_custom_with_code_review_on_left_reports_present() { let config = HeaderToolbarChipSelection::Custom { left: vec![HeaderToolbarItemKind::CodeReview], right: vec![], }; assert!(config.contains_item(&HeaderToolbarItemKind::CodeReview)); } #[test] fn header_toolbar_chip_selection_custom_empty_reports_all_absent() { let config = HeaderToolbarChipSelection::Custom { left: vec![], right: vec![], }; for item in HeaderToolbarItemKind::all_items() { assert!(!config.contains_item(&item)); } }