template test: check for determinism

This commit is contained in:
Olivier 'reivilibre
2025-10-27 14:51:03 +00:00
parent 08acaa447c
commit b0e2a8f4cd
3 changed files with 13 additions and 3 deletions

1
Cargo.lock generated
View File

@@ -3727,6 +3727,7 @@ dependencies = [
"minijinja-contrib",
"oauth2-types",
"rand 0.8.5",
"rand_chacha 0.3.1",
"serde",
"serde_json",
"serde_urlencoded",

View File

@@ -42,3 +42,6 @@ mas-i18n.workspace = true
mas-iana.workspace = true
mas-router.workspace = true
mas-spa.workspace = true
[dev-dependencies]
rand_chacha.workspace = true

View File

@@ -482,14 +482,15 @@ impl Templates {
#[cfg(test)]
mod tests {
use rand::SeedableRng;
use super::*;
#[tokio::test]
async fn check_builtin_templates() {
#[allow(clippy::disallowed_methods)]
let now = chrono::Utc::now();
#[allow(clippy::disallowed_methods)]
let rng = rand::thread_rng();
let rng = rand_chacha::ChaCha8Rng::from_seed([42; 32]);
let path = Utf8Path::new(env!("CARGO_MANIFEST_DIR")).join("../../templates/");
let url_builder = UrlBuilder::new("https://example.com/".parse().unwrap(), None, None);
@@ -517,6 +518,11 @@ mod tests {
)
.await
.unwrap();
templates.check_render(now, &rng).unwrap();
// Check the renders are deterministic, when given the same rng
let render1 = templates.check_render(now, &rng).unwrap();
let render2 = templates.check_render(now, &rng).unwrap();
assert_eq!(render1, render2);
}
}