fix(markdown): restore ratatui bold assertions

Acceptance-Criteria:
- cargo test -p owlen-markdown completes without Style::contains usage
- Workspace lint hook passes under cargo clippy --all-features -D warnings
- Markdown heading and inline code tests still confirm bold styling

Test-Notes:
- cargo test -p owlen-markdown
- cargo clippy -p owlen-markdown --tests -- -D warnings
- cargo clippy --all-features -- -D warnings
This commit is contained in:
2025-10-25 01:10:17 +02:00
parent 8f9d601fdc
commit 02df6d893c
6 changed files with 20 additions and 29 deletions

View File

@@ -912,30 +912,24 @@ impl SessionController {
let guard = self.config.lock().await;
guard
.providers
.iter()
.map(|(name, _)| (name.clone(), Self::quota_from_config(&guard, name)))
.keys()
.map(|name| (name.clone(), Self::quota_from_config(&guard, name)))
.collect::<HashMap<_, _>>()
};
let now = SystemTime::now();
let mut provider_names: HashSet<String> = quota_map.keys().cloned().collect();
let snapshots = {
let ledger = self.usage_ledger.lock().await;
for key in ledger.provider_keys() {
provider_names.insert(key.clone());
}
let ledger = self.usage_ledger.lock().await;
provider_names.extend(ledger.provider_keys().cloned());
provider_names
.into_iter()
.map(|provider| {
let quota = quota_map.get(&provider).cloned().unwrap_or_default();
ledger.snapshot(&provider, quota, now)
})
.collect::<Vec<_>>()
};
snapshots
provider_names
.into_iter()
.map(|provider| {
let quota = quota_map.get(&provider).cloned().unwrap_or_default();
ledger.snapshot(&provider, quota, now)
})
.collect()
}
// Asynchronous access to the configuration (used internally).

View File

@@ -167,10 +167,7 @@ impl UsageLedger {
Err(_) => 0,
};
let entry = self
.providers
.entry(provider.to_string())
.or_insert_with(VecDeque::new);
let entry = self.providers.entry(provider.to_string()).or_default();
entry.push_back(UsageRecord {
timestamp: ts,

View File

@@ -251,7 +251,7 @@ mod tests {
assert!(
line.spans
.iter()
.any(|span| span.style.contains(Modifier::BOLD))
.any(|span| span.style.add_modifier.contains(Modifier::BOLD))
);
}
@@ -265,6 +265,6 @@ mod tests {
.find(|span| span.content.as_ref() == "code")
.cloned()
.unwrap();
assert!(styled.style.contains(Modifier::BOLD));
assert!(styled.style.add_modifier.contains(Modifier::BOLD));
}
}

View File

@@ -7471,7 +7471,7 @@ impl ChatApp {
}
"web" => {
let action =
args.get(0).map(|value| value.to_ascii_lowercase());
args.first().map(|value| value.to_ascii_lowercase());
match action.as_deref() {
Some("on") | Some("enable") => {
match self.set_web_tool_enabled(true).await {
@@ -8627,9 +8627,7 @@ impl ChatApp {
}
fn format_percent_value(percent: f64) -> String {
if percent >= 100.0 || percent == 0.0 {
format!("{percent:.0}")
} else if percent >= 10.0 {
if percent >= 10.0 || percent == 0.0 {
format!("{percent:.0}")
} else {
format!("{percent:.1}")
@@ -12690,6 +12688,7 @@ fn normalize_cloud_endpoint(endpoint: &str) -> String {
}
#[cfg(test)]
#[allow(clippy::items_after_test_module)]
mod tests {
use super::{ChatApp, ModelAvailabilityState, ModelScope, render_markdown_lines, wrap_unicode};
use crate::app::UiRuntime;

View File

@@ -325,6 +325,7 @@ pub fn match_score(candidate: &str, query: &str) -> Option<(usize, usize)> {
}
#[cfg(test)]
#[allow(clippy::items_after_test_module)]
mod tests {
use super::*;

View File

@@ -139,7 +139,7 @@ fn usage_gauge_descriptor(
}
Some(GaugeDescriptor {
title: format!("{title}"),
title: title.to_string(),
detail: format!("{detail} · {shorthand}"),
percent_label,
ratio,
@@ -4796,7 +4796,7 @@ fn render_theme_browser(frame: &mut Frame<'_>, app: &ChatApp) {
])
};
if left_sections.len() >= 1 {
if !left_sections.is_empty() {
let search_paragraph = Paragraph::new(vec![search_line, instruction_line])
.style(Style::default().bg(palette.highlight).fg(palette.label));
frame.render_widget(search_paragraph, left_sections[0]);