130 lines
4.1 KiB
Rust
130 lines
4.1 KiB
Rust
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));
|
|
}
|
|
}
|