fix(test): all of those tests were actually good.. i was encountering OS error when saving snapshot

i'm an idiot...
This commit is contained in:
Samuel Åkesson
2026-04-16 17:50:16 +02:00
parent 90504d8d47
commit 5b2f9888e6
13 changed files with 107 additions and 43 deletions

View File

@@ -101,37 +101,13 @@ mod tests {
use insta::assert_snapshot;
use ratatui::{Terminal, backend::TestBackend};
use rstest::rstest;
use std::hash::{DefaultHasher, Hash, Hasher};
#[rstest]
fn render_good(
#[values("short", "with\nnewline")] message_str: &'static str,
#[values(
NotificationLevel::Info,
NotificationLevel::Warning,
NotificationLevel::Error
)]
level: NotificationLevel,
) {
let mut terminal = Terminal::new(TestBackend::new(80, 24)).unwrap();
terminal
.draw(|frame| {
let notification = Notification {
message: message_str.into(),
level: level.clone(),
ttl: 1,
};
notification.render(0, frame, frame.area());
})
.unwrap();
let snapshot_name = format!("{}-{:?}", message_str, level);
assert_snapshot!(snapshot_name, terminal.backend());
}
#[rstest]
#[should_panic(expected = "File name too long")]
fn render_bad(
#[values(
"short",
"with\nnewline",
"extremely long WITHOUT newline Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed id mauris sit amet libero convallis fringilla quis non augue. In sollicitudin quam sed magna finibus, vitae malesuada magna porttitor. Pellentesque in dictum dui. Nullam nec mi venenatis, faucibus odio eget, molestie nisi. Fusce velit nibh, euismod vel lectus id, placerat.",
r"extremely long WITH newline Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Sed id mauris sit amet libero convallis fringilla quis non
@@ -159,7 +135,11 @@ nisi. Fusce velit nibh, euismod vel lectus id, placerat."
})
.unwrap();
let snapshot_name = format!("{}-{:?}", message_str, level);
let mut hasher = DefaultHasher::new();
message_str.hash(&mut hasher);
let hash = hasher.finish();
let snapshot_name = format!("{}-{:?}", hash, level);
assert_snapshot!(snapshot_name, terminal.backend());
}
}

View File

@@ -0,0 +1,28 @@
---
source: src/notification.rs
expression: terminal.backend()
---
" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ "
" ┃ Error ┃ "
" ┃ extremely long WITH newline Lorem ipsum dolor sit amet, consectetur ┃ "
" ┃adipiscing elit. Sed id mauris sit amet libero convallis fringilla quis non┃ "
" ┃ augue. In sollicitudin quam sed magna finibus, vitae malesuada magna ┃ "
" ┃ porttitor. ┃ "
" ┃ Pellentesque in dictum dui. Nullam nec mi venenatis, faucibus odio eget, ┃ "
" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "

View File

@@ -0,0 +1,28 @@
---
source: src/notification.rs
expression: terminal.backend()
---
" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ "
" ┃ Info ┃ "
" ┃ extremely long WITH newline Lorem ipsum dolor sit amet, consectetur ┃ "
" ┃adipiscing elit. Sed id mauris sit amet libero convallis fringilla quis non┃ "
" ┃ augue. In sollicitudin quam sed magna finibus, vitae malesuada magna ┃ "
" ┃ porttitor. ┃ "
" ┃ Pellentesque in dictum dui. Nullam nec mi venenatis, faucibus odio eget, ┃ "
" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "

View File

@@ -0,0 +1,28 @@
---
source: src/notification.rs
expression: terminal.backend()
---
" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ "
" ┃ Warning ┃ "
" ┃ extremely long WITH newline Lorem ipsum dolor sit amet, consectetur ┃ "
" ┃adipiscing elit. Sed id mauris sit amet libero convallis fringilla quis non┃ "
" ┃ augue. In sollicitudin quam sed magna finibus, vitae malesuada magna ┃ "
" ┃ porttitor. ┃ "
" ┃ Pellentesque in dictum dui. Nullam nec mi venenatis, faucibus odio eget, ┃ "
" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "

View File

@@ -2,11 +2,11 @@
source: src/notification.rs
expression: terminal.backend()
---
" ━━━━━━━━━━━━━┓ "
" Error ┃ "
" ┃ longer with ┃ "
" ┃ newline ┃ "
" ┗━━━━━━━━━━━━━┛ "
" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ "
" Error ┃ "
" ┃ extremely long WITHOUT newline Lorem ipsum dolor sit amet, consectetur ┃ "
" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ "
" "
" "
" "
" "

View File

@@ -2,11 +2,11 @@
source: src/notification.rs
expression: terminal.backend()
---
" ━━━━━━━━━━━━━┓ "
" Info ┃ "
" ┃ longer with ┃ "
" ┃ newline ┃ "
" ┗━━━━━━━━━━━━━┛ "
" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ "
" Info ┃ "
" ┃ extremely long WITHOUT newline Lorem ipsum dolor sit amet, consectetur ┃ "
" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ "
" "
" "
" "
" "

View File

@@ -2,11 +2,11 @@
source: src/notification.rs
expression: terminal.backend()
---
" ━━━━━━━━━━━━━┓ "
" Warning ┃ "
" ┃ longer with ┃ "
" ┃ newline ┃ "
" ┗━━━━━━━━━━━━━┛ "
" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ "
" Warning ┃ "
" ┃ extremely long WITHOUT newline Lorem ipsum dolor sit amet, consectetur ┃ "
" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ "
" "
" "
" "
" "