Use proper hash for creates_a_new_task snapshot

This commit is contained in:
Héctor Ramón Jiménez 2024-12-17 02:27:13 +01:00
parent 326c5852aa
commit 41a822c6fb
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
5 changed files with 19 additions and 18 deletions

View file

@ -1 +0,0 @@
e0b1f2e0c0af6324eb45fde8e82384d16acc2a80a9e157bdf3f42ac6548181cf

View file

@ -0,0 +1 @@
3160686067cb7c738802009cdf2f3c5f5a5bd8c89ada70517388b7adbe64c313

View file

@ -590,7 +590,7 @@ impl SavedState {
mod tests {
use super::*;
use iced::Settings;
use iced::{Settings, Theme};
use iced_test::{selector, Error, Simulator};
fn simulator(todos: &Todos) -> Simulator<Message> {
@ -621,7 +621,7 @@ mod tests {
let mut ui = simulator(&todos);
let _ = ui.find(selector::text("Create the universe"))?;
let snapshot = ui.snapshot()?;
let snapshot = ui.snapshot(&Theme::Dark)?;
assert!(
snapshot.matches_hash("snapshots/creates_a_new_task")?,
"snapshots should match!"

View file

@ -15,7 +15,9 @@ workspace = true
[dependencies]
iced_runtime.workspace = true
iced_renderer.workspace = true
iced_renderer.features = ["fira-sans"]
png.workspace = true
sha2.workspace = true

View file

@ -16,12 +16,13 @@ use crate::core::theme;
use crate::core::time;
use crate::core::widget;
use crate::core::window;
use crate::core::{Element, Event, Point, Rectangle, Settings, Size, SmolStr};
use crate::core::{
Element, Event, Font, Point, Rectangle, Settings, Size, SmolStr,
};
use crate::runtime::user_interface;
use crate::runtime::UserInterface;
use std::borrow::Cow;
use std::env;
use std::fs;
use std::io;
use std::path::{Path, PathBuf};
@ -31,7 +32,7 @@ pub fn simulator<'a, Message, Theme, Renderer>(
element: impl Into<Element<'a, Message, Theme, Renderer>>,
) -> Simulator<'a, Message, Theme, Renderer>
where
Theme: Default + theme::Base,
Theme: theme::Base,
Renderer: core::Renderer + core::renderer::Headless,
{
Simulator::new(element)
@ -65,7 +66,7 @@ pub struct Target {
impl<'a, Message, Theme, Renderer> Simulator<'a, Message, Theme, Renderer>
where
Theme: Default + theme::Base,
Theme: theme::Base,
Renderer: core::Renderer + core::renderer::Headless,
{
pub fn new(
@ -88,12 +89,17 @@ where
) -> Self {
let size = size.into();
let default_font = match settings.default_font {
Font::DEFAULT => Font::with_name("Fira Sans"),
_ => settings.default_font,
};
for font in settings.fonts {
load_font(font).expect("Font must be valid");
}
let mut renderer =
Renderer::new(settings.default_font, settings.default_text_size);
Renderer::new(default_font, settings.default_text_size);
let raw = UserInterface::build(
element,
@ -307,8 +313,7 @@ where
statuses
}
pub fn snapshot(&mut self) -> Result<Snapshot, Error> {
let theme = Theme::default();
pub fn snapshot(&mut self, theme: &Theme) -> Result<Snapshot, Error> {
let base = theme.base();
let _ = self.raw.update(
@ -323,7 +328,7 @@ where
let _ = self.raw.draw(
&mut self.renderer,
&theme,
theme,
&core::renderer::Style {
text_color: base.text_color,
},
@ -493,11 +498,5 @@ impl From<png::EncodingError> for Error {
}
fn snapshot_path(path: impl AsRef<Path>, extension: &str) -> PathBuf {
let path = path.as_ref();
path.with_file_name(format!(
"{file_stem}-{os}.{extension}",
file_stem = path.file_stem().unwrap_or_default().to_string_lossy(),
os = env::consts::OS,
))
path.as_ref().with_extension(extension)
}